0

WinAPI ラジオ ボタンに問題があります。基本的に私はそれらの3つを持っており、あるものから別のものに切り替えると、マウスをその上に置くか、前にクリックしたボタンをもう一度クリックするまで、古いものがまだチェックされています。コントロールとウィンドウ全体の両方を無効にしてみましたが、うまくいきませんでした。同じダイアログのチェックボックスにも同様の問題があります。実際の状態を確認するには、チェックボックスにカーソルを合わせる必要があります。

編集:

これは、各ボタンが選択されたときに行われます (注 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