Здравствуйте Rajoe, Вы писали:
R>Не буду путать моих уважаемых (и уже почти любимых :)) советчиков и опишу ситуацию подробнее. Я пишу на Visual FoxPro класс окна, которое может передвигаться мышкой за любою точку клиентской части. Есть реализация этого, выглядит (примерно) таким образом: R>* обработчик события MouseDown
[skipped] R>lnHandle = GetFocus() R>bb = ReleaseCapture()
А где делается GetCapture?
R>mc001A = 274 && 0x0112 R>mc001C = -4078 && 0xF012 R>bb = SendMessage(lnHandle, mc001A, mc001C, 0)
Хм... Я не нашел команды с кодом 0xF012... Вот их полный список из моего winuser.h:
/*
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
#define SC_MAXIMIZE 0xF030
#define SC_NEXTWINDOW 0xF040
#define SC_PREVWINDOW 0xF050
#define SC_CLOSE 0xF060
#define SC_VSCROLL 0xF070
#define SC_HSCROLL 0xF080
#define SC_MOUSEMENU 0xF090
#define SC_KEYMENU 0xF100
#define SC_ARRANGE 0xF110
#define SC_RESTORE 0xF120
#define SC_TASKLIST 0xF130
#define SC_SCREENSAVE 0xF140
#define SC_HOTKEY 0xF150
#if(WINVER >= 0x0400)
#define SC_DEFAULT 0xF160
#define SC_MONITORPOWER 0xF170
#define SC_CONTEXTHELP 0xF180
#define SC_SEPARATOR 0xF00F
#endif /* WINVER >= 0x0400 */
По логике, это какая-то модификация SC_MOVE... ;)
R>Всё было бы ничего, если бы оно работало, а то работает строго через раз (т.е. на каждый нечётный клик).
Вы дали не весь код. Там явно есть еще что-то, что и мешает работать нормально.