0

我对 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() 没有效果。

4

0 回答 0