通知
すべてクリア
Topic starter
2012年10月24日 6:06 PM
環境:Win XP、VC6.0SP6、MFC
EXEからDLL内のダイアログをモードレスで表示させていますが、
対象のモードレスダイアログのスタイルがポップアップの場合に
Alt+Enterを押すことでフリーズしてしまいます。
ダイアログのスタイルをオーバーラップに変更すると、
フリーズは発生しなくなりました。
ポップアップとオーバーラップの使い分け方を教えていただけないでしょうか。
2012年10月24日 8:05 PM
SDKでわたしの知っていることは、
・WS_POPUPだとGetParentがオーナーウィンドウのHWNDを返す
・WS_OVERLAPPEDだとGetParentはゼロを返す
です。
MFCは詳しくないのですが、ひょっとしたら
DLLからCWnd::GetParentを呼び出すと本物のCWndを返さないのかもしれません。
2012年10月24日 8:21 PM
連投すまんです。
Alt+Enterとは、メインフレームがアクティブなときにAltキーを押した状態でEnterキー
を押すということでしょうか、あるいは、Altキーを押し離し、直後にEnterキーを押す
ということでしょうか。
前者ならば対応するアクセラレータが登録されていると思います。
後者ならば、メニューバーの最も左側のメニュー項目を選択しポップアップメニューを
表示しようとしている状態を意味しています。
Topic starter
2012年10月25日 4:01 PM
ロマさん、ありがとうございます。
Alt+Enterに関してはテキストコントロールで改行しようとして
Excelのようにキー入力して現象が発覚しました。
アクセラレータの登録はなかったのですが、
GetPartentは使用していなかったので、
とりあえずオーバーラップのスタイルで様子を見ることにします。