Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > интерактивная часть окна


Автор: 1122 11.11.2008, 17:57
Всем доборого времени суток.
Нужно написать программу в Win32, в которой, по мимо всяких менюшек, строк состояний, будет выводиться в окно объект заранее написанного и подключенного к проекту-Win32 класса.Причем значения должны быть, ну, как бы это сказать, интерактивные, т.е. нужно сделать так, чтобы их можно было перетаскивать мышкой по клиентской области окна.

Автор: HumanAPI 11.11.2008, 21:10
Цитата

элементы этого массива должны быть, ну, как бы это сказать, интерактивные


Прикольно прям как в фильме "Я робот" свободные радикалы smile

А вообще то  в оконной функции надо обработать 4 сообщения
WM_PAINT здесь перерисовываем объекты представляющие элементы массива  
WM_LBUTTONUP   здесь мы ищим элемент массива по координатам курсора (естественно нужно сохранять оконные координаты элементов массива) если нашли ставим флаг перемещения
WM_MOUSEMOVE здесь переписываем  оконные координаты выбранного элемента и посылаем окну сообщение WM_PAINT
WM_LBUTTONDOWN сбрасываем флаг перемещения
ну вот примерно так smile

Автор: J0ker 12.11.2008, 02:50
Цитата(HumanAPI @ 11.11.2008,  21:10)
Цитата

элементы этого массива должны быть, ну, как бы это сказать, интерактивные


Прикольно прям как в фильме "Я робот" свободные радикалы smile

А вообще то  в оконной функции надо обработать 4 сообщения
WM_PAINT здесь перерисовываем объекты представляющие элементы массива  
WM_LBUTTONUP   здесь мы ищим элемент массива по координатам курсора (естественно нужно сохранять оконные координаты элементов массива) если нашли ставим флаг перемещения
WM_MOUSEMOVE здесь переписываем  оконные координаты выбранного элемента и посылаем окну сообщение WM_PAINT
WM_LBUTTONDOWN сбрасываем флаг перемещения
ну вот примерно так smile

1. наоборот для WM_LBUTTONUP и WM_LBUTTONDOWN
2. на WM_LBUTTONDOWN еще делаем SetCapture
3. на WM_LBUTTONUP еще делаем ReleaseCapture

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)