Win32 非MFCにおいてのダイアログについて質問です。
ダイアログとモードレスダイアログですが
以下の2つの作成関数において
int DialogBox(
HINSTANCE hInstance,
LPCTSTR lpTemplate ,
HWND hWndParent,
DLGPROC lpDialogFunc
);
HWND CreateDialog(
HINSTANCE hInstance ,
LPCTSTR lpTemplate,
HWND hWndParent ,
DLGPROC lpDialogFunc
);
2つ目の引数 lpTemplate は必ずリソーススクリプトで記述された
ダイアログボクッステンプレートを指定しなければならないのでしょうか?
私としてはメインウィンドウに対して CreateWindowEx などで
hMenu 引数にリソーススクリプトなしでリソースIDのみ与えれば
コントロールを貼り付けるのと同じように
ダイアログもしたいのですが、これって無理なんでしょうか?
また、CreateWindow などでモーダルやモードレスダイアログと
同等のウィンドウを作るにはどうしたらよいのでしょうか
CreateDialog や DialogBox がCreateWindow(Ex?)を呼び出しているのは
わかるのですが・・・
WS_DLGFRAME 等でウインドウを作成してみるとメインウィンドウから外へダイアログがでれ無
かったりします。
どのような WS_, WS_EX_, DS_ フラグを指定しているのかわかりません。
以上よろしくお願いします。
リソーススクリプトなしでダイアログを出したいのならCreateDialogIndirectとか。
不定長配列扱うのが面倒ですが。
>メインウィンドウから外へダイアログがでれ無かったりします。
WS_CHILDフラグが付いてたりしないですか?
>>メインウィンドウから外へダイアログがでれ無かったりします。
>WS_CHILDフラグが付いてたりしないですか?
の件ですが継承したクラスでオーバーライドしているはずのものが
しておらず、WS_CHILDが立ったまま
という方法のミスでした。お騒がせしました。
CreateDialogIndirectを使用しとりあえず解決致しました。
ありがとうございました。