簡単なダイアログ ベースのアプリケーションを作成し、既定の CDialog に、Visual Studio エディターを使用して (ドラッグ アンド ドロップで) 3 つのボタンを追加しました。
デフォルトの [OK] ボタンと [キャンセル] ボタンもそこにあります。
ボタン 3 をクリックしたときにボタン 1 にフォーカスを設定したい。
多くのボタンのプロパティでプロパティ Flat を true に設定しました。
私はこれをコーディングしました:
void CbuttonfocusDlg::OnBnClickedButton3()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_BUTTON1)->SetFocus();
Invalidate();
}
しかし、button1 のボーダーは描画されません。キャレット (フォーカスを示す点線) は、ボタン 3 をクリックする前にいつでも TAB を押した場合にのみ描画されます。
ボタンをクリックした後の見た目とまったく同じようにボタンを表示したい。プログラムでボタン内に点線を表示すると、プラスになります。
私が欲しいもの:
私が得るもの: