リソースエディタで作成したダイアログを子ウィンドウにしたい – プログラミング – Home

リソースエディタで作成したダイアログを...
 
通知
すべてクリア

リソースエディタで作成したダイアログを子ウィンドウにしたい


Solar
 Solar
(@Solar)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

VisualStudio2008 SDK+リソースエディタにて作成してます。
リソースエディタでデザインしたダイアログを子ウィンドウとして表示できないか試行錯
誤してます。
子ウィンドウはフレーム内で移動や最小化できる事が希望です。
MDIの経験が無かったのでまず、 http://wisdom.sakura.ne.jp/system/winapi/win32
/win139.htmlを参考にMDIを作成し動作するのを確認しました。
次にリソースエディタで作成したダイアログを表示させるためCreateMDIWindowの代わり
にCreateDialogとShowWindowを使用し表示させてみました。
ところがダイアログの設定が子(WS_CHILD)ではタイトルバーが表示されず、移動もできま
せん。
ダイアログに配置したボタンなどは正常に動作してます。
他の設定(「ダイアログ」-「プロパティ」-「Style」)も色々試しましたがダメでした。

CreateDialogで表示されたダイアログは私の希望する状態で動作はできないのでしょうか?
ちなみにダイアログのプロパティでは他に「Control」を「True」としてる以外の設定は
変更してません。


引用解決済
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

MDIチャイルドとダイアログの動作を同じにするのは、
面倒なのでやめたほうがいいかも(不可能の可能性も高い)。

その代わり、良く使う手ですが、通常のMDIチャイルドのViewを親にして、
当該のDLGをCreateDialogしてみたらどうでしょう。
当然、ViewのWM_SIZE時、DLGのサイズ設定してやる必要があります。
当たり前ですがDLGのプロパティで「Style=子」です。

ただし、注意点として
1.そのDLGのエディットにフォーカスがあるときに、メインフレームの
  ショートカットが聞かなくなる場合が想像できる。
2.サイズが小さいときの対応をする必要がある(スクロール/無視)。
3.デフォルトボタン等の対応。
4.DLG特有のショートカット(ESC)等の問題

等が考えられます。


返信引用
Solar
 Solar
(@Solar)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

仲澤@失業者さん、ありがとうございます。

色々大変そうですね。
コントロールがたくさんあり、追加や配置変更が発生した場合簡単に変更できるのでリ
ソースエディタで作成しようと思ったのですがもう少し考えてみます。

CreateMDIWindowでできた子ウィンドウにリソースエディタで作ったWS_CHILD設定のダイ
アログを表示させた場合でもおそらく注意点は同じですよね?
子ウィンドウに表示させるぶんにはそこに固定されていてもOKなので希望する見た目には
なりますが...


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました