У меня есть кнопка подклассов, которую я пытаюсь подчеркнуть, когда курсор мыши над ней. Тем не менее, я не могу получить функцию TrackMouseeVent () для правильной работы. Вот код, который создает подкласс: < /p>
'2' (красный) для wm_mousehover и '3' для wm_mouseleave Кнопка остается серым, пока я не перемещаю курсор на кнопку. В этот момент он становится зеленым (указывая на «wm_mouseleave»). Он должен покраснеть (для "wm_mousehover") и не становиться зеленым, пока я не отодвинул курсор от кнопки. Кнопка теперь остается зеленой, где бы я ни двигал курсор.
Кто -нибудь знает, что я делаю не так?>
У меня есть кнопка подклассов, которую я пытаюсь подчеркнуть, когда курсор мыши над ней. Тем не менее, я не могу получить функцию TrackMouseeVent () для правильной работы. Вот код, который создает подкласс: < /p> [code]hBtn = CreateWindow(L"button", L"", WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, 0, 0, 0, 0, hWnd, HMENU(400), hInst, NULL); SetWindowSubclass(hBtn[0], subSIproc, 400, 0); < /code> Вот процедура подкласса: < /p> LRESULT CALLBACK subSIproc(HWND hButton, UINT iMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uId, DWORD_PTR dwRefData){ int HIflag=0;
case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hButton, &ps); if(HIflag==0) FillRect(hdc, &ps.rcPaint, CreateSolidBrush(0x007F7F7F)); if(HIflag==1) FillRect(hdc, &ps.rcPaint, CreateSolidBrush(0x00FF0000)); if(HIflag==2) FillRect(hdc, &ps.rcPaint, CreateSolidBrush(0x000000FF)); if(HIflag==3) FillRect(hdc, &ps.rcPaint, CreateSolidBrush(0x0000FF00)); EndPaint(hButton, &ps); } } return DefSubclassProc(hButton, iMsg, wParam, lParam); } < /code> переменная "hiflag" имеет четыре возможных значения, чтобы определить, какие сообщения принимаются, и когда --- '0' (grey) без полученных сообщений; '1' (синий) для wm_mousemove [/code] '2' (красный) для wm_mousehover и '3' для wm_mouseleave Кнопка остается серым, пока я не перемещаю курсор на кнопку. В этот момент он становится зеленым (указывая на «wm_mouseleave»). Он должен покраснеть (для "wm_mousehover") и не становиться зеленым, пока я не отодвинул курсор от кнопки. Кнопка теперь остается зеленой, где бы я ни двигал курсор. Кто -нибудь знает, что я делаю не так?>