Перед вами
очередной выпуск рассылки "Программирование на WinApi" Переводы многих функций Win32API, которые часто используются
в данной рассылке, вы можете получать, подписавшись на дружественную
рассылку "WinAPI на
русском". Справочник по функциям Win32API вы
можете посмотреть на сайте BcbDev.ru в разделе MSDN
по-русски.
Как перемещать окно за
любое место?
Иногда требуется таскать
окно за любое место. Для реализации такой фичи требуется дописать в
обработчике событий окна, обработчик WM_MOUSEMOVE.
// В обработчике приёма сообщений этого окна
static int X0,Y0,id_set=0;
int X,Y,PressControl;
RECT R;
//.
case WM_MOUSEMOVE:
PressControl=wParam;
if(PressControl!=MK_LBUTTON)
{
id_set=0;
break;
}
//Запомним место, где нажали мышь
if(!id_set && (PressControl==MK_LBUTTON))
{
X0=LOWORD(lParam);
Y0=HIWORD(lParam);
id_set=1;
break;
}
X=LOWORD(lParam);
Y=HIWORD(lParam);
GetWindowRect(hWnd,&R);
//сместим окно
R.left+=(X-X0);
R.top+=(Y-Y0);
SetWindowPos(hWnd,0,R.left,R.top,10,10,SWP_NOSIZE);
break;
//.