VC OnInitDialog で、コントロールにSetFocus()できない

  • デル株式会社
  • VC OnInitDialog で、コントロールにSetFocus()できない

    VCのダイアログで、初期処理後にダイアログに張り付けたEdit等のコントロールにフォーカスを設定したいことが多々ある。
    今回、obj.SetFocusしてもフォーカスが設定されない。。
    でっ、解決したんだけど、久しぶりにVCでコーディングして、ハマったので備忘。
    すげー時間を無駄にした。。。



    説明とソース

    ダイアログベースのプロジェクト作成後、VCで自動生成される、

    void xxxxxx::OnInitDialog()

    は、戻り値の初期状態が、

    return TRUE; // フォーカスをコントロールに設定した場合を除き、TRUEを返します。

    となっている。
    フォーカスをコントロールに設定する場合は、コメントのとおり、

    return FALSE;

    とするが正しかった。。

    ※今回、コメントが削除してしまって気付かず、新しいプロジェクト作成して気付いた。。。。アホや。

    
    // 【フォーカスしない】
    void xxxxxx::OnInitDialog()
    {
          初期処理
         :
         :
    
          obj.SetFocus();
          return TRUE; // フォーカスをコントロールに設定した場合を除き、TRUEを返します。  
    }
    
    // 【フォーカスする】
    void xxxxxx::OnInitDialog()
    {
          初期処理
         :
         :
    
          obj.SetFocus();
          return FALSE; // フォーカスをコントロールに設定した場合を除き、TRUEを返します。  
    }
    
    

    反省。。

    関連記事

    ページ上部へ戻る