2012年7月9日Tweetダイアログを作るときにリソースをいちいちつくるのが面倒なときがある。他のアプリケーションに移植するためにリソースIDなどの固有値を作るのが嫌な時がある。スポンサーリンクCreateIndirectモーダレス系のダイアログを作成する場合に使えるCDialogメソッド。追っていくと::CreateDialogIndirectで作っているのがわかる。関数を使ってダイアログボックスを作成します。ことなので結局はCreateWindowExで作っているようだ。);こんな感じになる。DLGTEMPLATEだけでは足りないようで4つWORDをさらに後ろにつける必要がある。DLGTEMPLATEEXを本来は指定なくてはならないのだが、このDLGTEMPLATEEXの定義が探しても見つからない。探しているとatlwin.hの中にこの定義を発見。インクルードするのあれなので今回はその方法は取っていない。)が18なので8バイト(WORD*4)足りないこともよくわかる。出来たダイアログはモードレスなので、RunModalLoopなどしてあげるとモーダルとして動作してくれる。InitModalIndirectモーダル系のダイアログを作成する場合に使えるCDialogメソッド。これ自体は、単に値(ポインタ)をセットするだけのもの。引数に使うLPDLGTEMPLATEはどこかに保存しておく必要がある。dtp;これを使って行う。こちらの方式で作る場合もDoModalの中で結局CreateDlgIndirectがよばれることになり上と同様な仕組みであることがわかる。WTLやATLの場合CDialogImplのCreateの方で簡単に作れる。こちらの場合、CreateWindowExを使っているようだ。→コメントは受け付けていません。