- ベストアンサー
SetWindowText関数について
プログラミング初心者です。 WINAPI32を用いて、プログラミングに励んでいます。 リソース機能を用いて、親ウインドウのメニューバーからダイアログという形で子ウインドウを開けるようなプログラムを作りました。さらにその子ウインドウ上に、エディットボックスのコントロールを作りました。 例えばそのエディットボックスのIDがIDC_EDIT1なのですが、 子ウインドウを開いた時にすでにそのエディットボックスに数値が入力されているようにしたいのです。 そこで、ダイアログが開かれた時に流れる WM_INITDIALOGのメッセージがきたときに、SetWindowText関数を使えばよいのかな?と思ったのですが、このようなとき第一パラメータにはどのような数値をいれたらエディットボックスに文字列を代入できますか?? IDC-EDIT1といれたら、Struct HWNDに変換してくださいというエラーがでました。 どなたかご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MFCを使っていないならば、 HWND GetDlgItem(HWND hDlg, int nIDDlgItem); が使えるはずです。 これで取得したウインドウハンドルでもって、SetWindowText()を実行すれば大丈夫でしょう。 以下は例です。(hDlgとlpctStringはすでに既知ということで。) HWND hDlgItem = GetDlgItem(hDlg, IDC-EDIT1); SetWindowText(hDlgItem, lpctString);
その他の回答 (1)
- pokapoka1980
- ベストアンサー率41% (48/117)
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)
補足
MFCの機能は使っていません。 まだMFCの勉強をしてませんので。。。 MFCの機能なしではなんとかならないでしょうか??
お礼
できました!! GetDlgItemですか。 しっかりと覚えておきます! 本当に助かりました。 ありがとうございました!!