• ベストアンサー

SetWindowText関数について

プログラミング初心者です。 WINAPI32を用いて、プログラミングに励んでいます。 リソース機能を用いて、親ウインドウのメニューバーからダイアログという形で子ウインドウを開けるようなプログラムを作りました。さらにその子ウインドウ上に、エディットボックスのコントロールを作りました。 例えばそのエディットボックスのIDがIDC_EDIT1なのですが、 子ウインドウを開いた時にすでにそのエディットボックスに数値が入力されているようにしたいのです。 そこで、ダイアログが開かれた時に流れる WM_INITDIALOGのメッセージがきたときに、SetWindowText関数を使えばよいのかな?と思ったのですが、このようなとき第一パラメータにはどのような数値をいれたらエディットボックスに文字列を代入できますか?? IDC-EDIT1といれたら、Struct HWNDに変換してくださいというエラーがでました。 どなたかご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yosi_yosi
  • ベストアンサー率35% (165/468)
回答No.2

MFCを使っていないならば、 HWND GetDlgItem(HWND hDlg, int nIDDlgItem); が使えるはずです。 これで取得したウインドウハンドルでもって、SetWindowText()を実行すれば大丈夫でしょう。 以下は例です。(hDlgとlpctStringはすでに既知ということで。) HWND hDlgItem = GetDlgItem(hDlg, IDC-EDIT1); SetWindowText(hDlgItem, lpctString);

C-Disney
質問者

お礼

できました!! GetDlgItemですか。 しっかりと覚えておきます! 本当に助かりました。 ありがとうございました!!

その他の回答 (1)

回答No.1

DDX/DDVは使わないのでしょうか? 読んでないけどここが詳しそうです。 http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl11-05/index.html MFCを使っているなら、 CEdit* pEdit=(CEdit*)pDialog->GetDlgItem(IDC_EDIT1); pEdit->SetWindowText("なんとか~"); とか・・。 (WM_INITDIALOGの送られるタイミングを覚えてないので、使えるかは不明です。m(__)m)

C-Disney
質問者

補足

MFCの機能は使っていません。 まだMFCの勉強をしてませんので。。。 MFCの機能なしではなんとかならないでしょうか??