CDialog の CButton であるラジオ ボタンがあります。ユーザーがラジオ ボタンをクリックすると、関数OnClickedRadioButton
が呼び出されます。
内部OnClickedRadioButton
では、この関数を呼び出してボタンを切り替えます。
void toggleButton(CButton& theButton)
{
switch(theButton.GetCheck())
{
case BST_UNCHECKED:
{
theButton.SetCheck(BST_CHECKED);
break;
}
case BST_CHECKED:
{
theButton.SetCheck(BST_UNCHECKED);
break;
}
default:
{
theButton.SetCheck(BST_UNCHECKED);
}
}
}
プログラムをコンパイルして実行すると、(i)ラジオボタンがオンになっている場合は、クリックしてクリアできます。(ii) ラジオ ボタンがオフの場合、クリックしても何も起こりません。しかし、別のプログラム (Visual Studio など) をクリックしてから CDialog に戻ると、ラジオ ボタンがオンになります。
Cwnd::UpdateDialogControls
関数とを見て試してみましたがCwnd::UpdateData
、問題を解決するためにこれらを取得できませんでした。