Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Уроки по Visual C++.NET. Рассылки сайта progs.biz
Рассылка № 82
С Новым Годом и Рождеством!
 
Начало > Visual C++.NET > MFC > Урок 34

М. Фленов. Программирование на C++ глазами хакера.
М. Фленов. Программирование на C++ глазами хакера
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 34.

Visual C++.NET
Урок 34. Drag-n-drop в интерфейсе Проводника

Если мы делаем Drag-n-drop в программе с разделенным сплиттером окном, то по умолчанию перетаскиваемые в программу файлы попадают в окно-рамку и там же мы по идее и можем сделать соответствующий обработчик. Но по логике обработчик у нас должен быть в одном из видов - левом (CTreeView) или правом (CListView). На этом уроке мы посмотрим, как правая часть нашего окна может принимать файлы.

Вот что мы должны для этого сделать:

Сначала мы добавим вызов DragAcceptFiles в метод класса окна-рамки (для того, чтобЫ правая часть нашей программы могла принимать файлы):

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
{
  ...
  GetRightPane()->DragAcceptFiles(); 
  return TRUE;
}

После чего добавляем обработчик для сообщения WM_DROPFILES для правого вида. Для этого мы в окне Properties нажимаем на кнопку Messages и в списке сообщений Windows выбираем WM_DROPFILES.

Вот текст добавляемого обработчика:

void CShortcutsTestView::OnDropFiles(HDROP hDropInfo) 
{
  // TODO: Add your message handler code here and/or call default
  //Показываем полный путь.
  char sPath[MAX_PATH];
  DragQueryFile(hDropInfo, 0, sPath, sizeof(sPath));
  AfxMessageBox(sPath);
  //Показываем точку, в которой отпустили.
  CPoint *point = new CPoint;
  DragQueryPoint(hDropInfo, point);
  CString s;
  s.Format("%d, %d", point->x, point->y);
  AfxMessageBox(s);
  CListView::OnDropFiles(hDropInfo);
}

В данном обработчике мы просто показываем в messagebox'ах полное имя перетаскиваемого файла и точку, в которой мы бросаем перетаскиваемый файл. настоящей программе, разумеется, мы напишем в этом обработчике что-нибудь более осмысленное.

Обратите внимание, что когда мы перетаскиваем файл из Проводника Windows, то иконка перетаскиваемого файла будет разная в левой части нашей программы и в правой. В левой части иконка будет показана перечеркнутым кругом, показывающим, что перетаскивание запрещено, а в правой - в виде стрелки с прямоугольничком, показывающим, что перетаскивание разрешено.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.lessonsfromai
Отписаться

В избранное