ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:akaryu-ryu 子ダイアログのコントロールにフォーカス(VC++2005)
困り度:
  • すぐに回答を!
お世話になります。
Visual Studio 2005でVC++の開発をしております。
ダイアログを2つ用意して、一つはstyleを「ポップアップ」に、
もう一つは「子」にしてます。
親ダイアログ内にタブをセットし、その上に子を乗せる処理を行っていて
親のダイアログのボタンイベントから子のダイアログのコントロールにフォーカスを
当てたいのですが、どのようにしたらよろしいのでしょうか?

親ダイアログ内では、

(子ダイアログ).Create(子ダイアログクラス, this);

で生成して
MoveWindowやShowWindowで位置・表示の設定を行っています。

親から子ダイアログ内のコントロールの入力チェックを行おうと思い、
未入力判定まではできたのですが
どうしてもSetFocus()でフォーカスが当たりません。

どなたかご教授していただけますでしょうか?
質問投稿日時:08/04/07 11:40
質問番号:3929100
この質問に対する回答は締め切られました。

回答

良回答20pt

回答者:Wr5 >どうしてもSetFocus()でフォーカスが当たりません。
はどこで実行しているのでしょうか?

ダイアログ上のコントロールのフォーカスを、ダイアログを開くときに設定する場合、WM_INITDIALOGに対してちゃんと反応する必要がありますが…

http://msdn2.microsoft.com/ja-jp/library/6zxw3b4a(VS.80).aspx
http://msdn2.microsoft.com/ja-jp/library/fwz35s59(VS.80).aspx
戻り値のところに記述されています。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/08 00:51
回答番号:No.1
この回答への補足ご回答ありがとうございます。
SetFocus()は、親ダイアログのボタンが押された時に走らせております。
親ダイアログのボタン押下時に子ダイアログ内のコントロールの入力チェックを行い、
エラーの場合にフォーカスを当てようと思ってます。
この回答へのお礼この回答にお礼をつける(質問者のみ)