Win32API入門(http://wisdom.sakura.ne.jp/system/winapi/)を見ながら、BCC32でGUIプログラミングの勉強をしています。
現在、以下URLのサンプルのように、ダイアログアプリケーションとして自作のソフトを作ろうとしています。
http://wisdom.sakura.ne.jp/system/winapi/win32/w …
さて、通常のダイアログ上のコントロールを初期化する際は、ウィンドウプロシージャでWM_INITDIALOGを補足するのが常套手段だと思いますが、上記サンプルのように、ダイアログアプリケーションとしてダイアログを生成した場合、WM_INITDIALOGが発行されないようです。
そこで、WM_CREATEを利用しようとしましたが、WM_CREATEが発行された時点では、GetDlgItem()等によるダイアログ上のコントロールのハンドル取得ができないようで、困ってしまいました。
ダイアログアプリケーションの初期化は、どのように行うのが正しいのでしょうか?
WinMain()で、CreateDialog()の直後に初期化処理を行えば、ひとまず目的は達成するのですが、WinMain()内での処理は何となく邪道のような気がして、質問させていただきました。
No.1ベストアンサー
- 回答日時:
WinMain内に処理を書くのが気持ち悪いのはわかります。
コントロールの初期化処理はウィンドウプロシージャの方に書いたほうが良いでしょう。
例えば、CreateDialog()で作ったHWNDに対して、CreateDialog呼び出し直後にユーザ定義のメッセージをPostMessageしておいても良いかと思います。
こうすればウィンドウハンドラに初期化処理を実装することが出来ますよ。
ありがとうございます。
その後、色々調べたのですが、お仕着せのメッセージで今回の目的に使えるメッセージを見つけることは出来ませんでした。
おっしゃるとおり、自分でWM_INITDIALOGを発行してしのぐことにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(ソフトウェア) UnityのPublishing SettingsでCreate Keyを押しても反応しない 1 2023/06/27 01:03
- Microsoft ASP Windows10エンタープライズ版をインストールしたらアプリが使えなくなった 3 2023/03/07 11:08
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- その他(OS) windows10 Microsoftアカウントを完全に削除・入れ替えるには? 1 2023/08/18 08:26
- Windows 10 MSアカウントの「個人設定をクラウドから削除します」は機能していないのでしょうか? 1 2022/11/20 17:01
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- C言語・C++・C# Seleniumで「ファイルを開く」ダイアログボックスのフォルダ指定する方法を教えてください。 1 2022/05/09 07:38
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NETでのメッセージ画面を出...
-
VBA メッセージボックスを自動...
-
<input type="file">タグで「キ...
-
ASP VBScriptでスクリプト実行...
-
エクセルVBAでクリップボード内...
-
ボタンが押された事を検知する...
-
WEB上にボタンが押せない
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
タスクマネージャーのプロセス...
-
マインスイーパ、自動解析プロ...
-
system関数を使用してsuコマン...
-
VB6.0 SHELLで起動...
-
VBAの配列サイズとメモリに関して
-
H8/OSを用いた割り込みで困って...
-
StrConvの使い方について教えて...
-
C++Builderでペイントソフト
-
起動中のEXCELファイル(EXCEL...
-
closeとメモリの開放について
-
プロセスIDからウィンドウハ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA kernel32 の意味
-
エクセルVBAでクリップボード内...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
VBA メッセージボックスを自動...
-
Application.ScreenUpdating=Fa...
-
Excel VBA 自動的に閉じるMsgBox
-
ASP.NETでのメッセージ画面を出...
-
メッセージBOXの「はい」「いい...
-
「キャンセル」ボタン付きの処...
-
B列に特定の文字列が入っている...
-
シャットダウン時のExcel強制終...
-
ASP VBScriptでスクリプト実行...
-
起動後直に実行するコードはど...
-
MFCのメニューバーのイベント取得
-
アクセスでのキー送信について
おすすめ情報