9th
Мар

Drag & Drop объект в любом окне

Posted by admin under Win Api, Архив, Исходники

Тема на форуме.
Drag & Drop объект в чужом окне
http://programmersforum.ru/showthread.php?t=4473

Вопрос:

Cделать так, чтобы в любом окне можно было создать Drag&Drop объект, который будет являться копией объекта из моей программы

Ответ

Имея хэндл чужого окна, можно сделать с ним всё тоже, что и с собственным. Всё, что нужно – это: 1) Написать функцию (обработчик событий) вида LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM) в которой реализуйте Drag n Drop – это достаточно просто. Для этого нужно будет обработать всего два события – WM_LBUTTONDOWN и WM_LBUTTONUP. При реализации этого используйте функцию SetCapture, чтобы при выходе курсора за границы окна во время перетаскивания, перетаскиваемый объект не “падал”. В своё время я с этим намучился. 2) Зарегестрируйте свой класс (RegisterWindowClassEx) – в вашем примере, ShiSh
a_34, это будет чёрное окно без рамки. В качестве соответсвующего параметра (я имею ввиду поле lpfnWndProc структуры WNDCLASSEX) ф-ии RegisterWindowClassEx укажите написанный вами обработчик событий. 3) Получите хэнл окна, в котором вы хотите создать свой чёрный квадрат. Это можно сделать, например, заная имя и (или) класс чужого окна при помощи ф-ии FindWindow. Или же поставить ловушку (SetWindowHook), которая будет срабатывать при клике мышкой на выбраном окне. Метод не важен и здесь о них писали предостаточно. Получив хэндл чужого окна, создайте свой объект при помощи ф-ии CreateWindowEx, в которой

Похожие статьи

Теги: | |