单选按钮和复选框重绘

时间:2013-05-17 07:37:20

标签: winapi

我遇到WinAPI单选按钮问题。基本上我有三个,当我从一个切换到另一个时,旧的仍然检查,直到我将鼠标悬停在它上面或我再次点击我之前点击的按钮。我尝试使 - 控件和整个窗口无效 - 没有运气。我在同一个对话框中的复选框有类似的问题 - 我必须将鼠标悬停在它们上面以查看它们的实际状态。

编辑:

选择每个按钮时都会这样做(注意1011 ... 1013是单选按钮ID):

RECT rect;
BringWindowToTop(GetDlgItem(hwnd, 1011));
GetClientRect(GetDlgItem(hwnd, 1011), &rect);
InvalidateRect(GetDlgItem(hwnd, 1011), &rect, TRUE);
RedrawWindow(GetDlgItem(hwnd, 1011), &rect, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

BringWindowToTop(GetDlgItem(hwnd, 1012));
GetClientRect(GetDlgItem(hwnd, 1012), &rect);
InvalidateRect(GetDlgItem(hwnd, 1012), &rect, TRUE);
RedrawWindow(GetDlgItem(hwnd, 1012), &rect, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

BringWindowToTop(GetDlgItem(hwnd, 1013));
GetClientRect(GetDlgItem(hwnd, 1013), &rect);
InvalidateRect(GetDlgItem(hwnd, 1013), &rect, TRUE);
RedrawWindow(GetDlgItem(hwnd, 1013), &rect, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

我也尝试发送WM_PAINT消息并在整个窗口和每个单选按钮上调用UpdateWindow() - 没有效果。

0 个答案:

没有答案