Приветствую. Есть задача: при движении мыши в окне должен двигаться статик внутри данного окна. По неизвестной мне причине сообщение WM_MOUSEMOVE отрабатывает постоянно если курсор мыши находится в окне, но при этом не двигается. Сам статик, как и диалоговое окно, созданы в ресурсах проекта. Проверялось на 2-х ноутбуках где программно отключался тачпад и отсоединялась мышь. Сам код:
BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
void GetStaticRect(HWND hWnd, RECT &rect);
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPTSTR lpszCmdLine, int nCmdShow)
{
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAINDIALOG), NULL, DlgProc);
}
HWND hStatic;
RECT rect;
BOOL CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CLOSE:
EndDialog(hWnd, 0);
return TRUE;
case WM_INITDIALOG:
hStatic = GetDlgItem(hWnd, IDC_RUNNINGSTATIC);
return TRUE;
case WM_MOUSEMOVE:
GetStaticRect(hWnd, rect);
MoveWindow(hStatic, rect.left + 1, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE);
return TRUE;
}
return FALSE;
}
void GetStaticRect(HWND hWnd, RECT &rect)
{
GetWindowRect(hStatic, &rect);
POINT p;
p.x = rect.left;
p.y = rect.top;
ScreenToClient(hWnd, &p);
rect.left = p.x;
rect.top = p.y;
p.x = rect.right;
p.y = rect.bottom;
ScreenToClient(hWnd, &p);
rect.right = p.x;
rect.bottom = p.y;
}
Прошу помочь с нахождением ошибки. Благодарю за внимание.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, имеется массив обьектов static vector<MobilePhone*> devices;Как можно записать все что внутри в бинарный файл, чтобы при повторном запуске...
В списке нужно поменять местами второй элемент и максимальныйЯ сделал, но надо упростить код