フォーカスの移動はやっぱり間違っていた。

公開:2011-09-15 19:42
更新:2020-02-15 04:36
カテゴリ:c++,dawもどきの作成,windows,audio

昨日の「コントロールのフォーカス」の件はコメントしていただいた方のおかげで直った。ありがとうございます。SetFocusではなく、WM_NEXTDLGCTLメッセージを送らないといけなかったようだ。


  // コントロールにフォーカスを移動する
  // id ... コントロールID
  void focus(uint32_t id)
  {
    // 間違い
    // ::SetFocus(GetDlgItem(hwnd_,id));
    // 正解
    post_message(WM_NEXTDLGCTL,(WPARAM)GetDlgItem(hwnd_,id),TRUE);
  }

フォーカスはこれで治ったが今度はキーボードフォーカスが今度表示されない。試しに間違い部分のコメントを外すと、こんな状態である。

とりあえずSetFocusは使わないことにする。

TABキーを一度でも押すと下記のような表示(キーボードフォーカスが表示)となるが。

キーボードフォーカスを表示するのはどうすればよいのだろうね。。しかしこのボタン内に表示される点線の枠はキーボードフォーカスというのであろうか。。