問題タブ [modeless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
7597 参照

c# - 「ページ設定」と「プリンター設定」をモードレスフォームとして表示するには?

「ページ設定」と「プリンター設定」をモードレスフォームとして表示することはできますか? 次のコードを使用しましたが、そのフォームはモーダル フォームとして表示されます。

0 投票する
2 に答える
3257 参照

vb.net - モードレスフォームを表示しますが、1つだけを表示します

VB2010。1時間検索しても解決策が見つからなかったので、何かが足りないに違いありません。私がやりたいのは簡単です。私のアプリでは、モードレスフォームを表示して、ユーザーがメインフォームを操作できる間、フォームがフローティングになるようにします。

ただし、フォームのインスタンスは常に1つだけ必要です。では、複数のインスタンスが表示されるのを防ぐにはどうすればよいでしょうか。インスタンスが1つある場合は、それにフォーカスを与えるだけですか。

0 投票する
0 に答える
234 参照

vba - モードレス ユーザーフォームを閉じる

ユーザーが Word VBA でフォームのウィンドウの外側をクリックしたときに、モードレス フォームを閉じるにはどうすればよいですか?

UserForm_Deactivateモードレスフォームの外をクリックしても呼び出されません。別のフォームを表示したときにのみ呼び出されます。

0 投票する
1 に答える
3623 参照

winapi - CDialog - MODELESS ダイアログからの EndDialog?

MSのドキュメント(およびその他)には、「明確に」次のように記載されています。

... CDialog オブジェクトの通常の OnOk および OnCancel メンバー関数は EndDialog を呼び出すため、モードレス ダイアログ ボックスがこれらの関数を呼び出さず、代わりにオーバーライドすることを確認してください。

CDialog::OnOk効果的に を呼び出すためCDialog::EndDialog、そのメソッドは次のようになります。

再び「明確に」状態のドキュメントを::EndDialog確認することもできます。

DialogBox、DialogBoxParam、DialogBoxIndirect、および DialogBoxIndirectParam 関数によって作成されたダイアログ ボックスは、EndDialog 関数を使用して破棄する必要があります。アプリケーションは、ダイアログ ボックス プロシージャ内から EndDialog を呼び出します。この機能を他の目的に使用してはなりません。

それでも、CDialogデフォルトの動作を持つ派生クラスがあります。非モーダル/モードレスで使用するOnOKと、一見すべてが機能しているようです。

つまり: * (モードレス) ダイアログを閉じると、閉じられるか、ビューから削除されます。* アプリケーションにメモリ リークは見られません。(MFC デバッグ ビルド)

だから何?予防して自分自身EndDialogを呼び出す必要があります?DestroyWindow


注: ドキュメントと「Web」の内容は知っています。なぜ違うことをする必要があるのか​​ まだわかっていないだけで、この1つのクラスはモードレスモードとモーダルモードで使用できるはずなので、別のことをする必要がないのは便利かもしれません.

0 投票する
3 に答える
21510 参照

vba - コードの実行を一時停止するモードレス フォーム

モーダルフォームのようにコードの実行を一時停止しながら、モードレスで動作するユーザーフォームを作成する方法はありますか?

ユーザーフォームを表示したいのですが、それでも親プログラムとの対話を許可します。モーダル フォームは、親プログラムとの対話をブロックします。モードレス フォームでも機能しますが、フォームがアップしている間はコードの実行を一時停止したいと考えています。

フォームが表示されているかどうかをチェックする無限ループを作成することで、この問題を回避しましたが、これは少しハッキーに思えます。

ユーザーフォームが完了した後に実行する必要がある .show の後のコードが存在することを明確にするために編集されました

0 投票する
1 に答える
1695 参照

visual-c++ - GetParent() の実行中にクラッシュします。モードレス ダイアログ ボックスを閉じる

モードレス ダイアログ ボックスを作成しています。このダイアログ ボックスは、メイン フレーム ウィンドウのメニュー項目から呼び出されます。

MainFrm.h

MainFrm.cpp

メニュー項目をクリックすると、OnDatabaseMLdlg() 関数が呼び出され、リソース ID IDD_MLDLG のモードレス ダイアログ ボックスが表示されます。

この問題は、モードレス ダイアログ ボックスを閉じるときに発生します。

このモードレス ダイアログ ボックスをきれいに閉じたり破棄したりする正しい方法を見つけることができません。右上隅の十字ボタンをクリックすると、どのメッセージが生成されますか?

私が試した現在のコードは次のとおりです。(ダイアログ ボックスを閉じることのみに関連するコードを生成する)

MLDLG.h

MLDLG.cpp

何が間違っているのか、何が欠けているのか理解できませんか?

必要に応じて、追加の詳細を提供できます。

前もって感謝します。

EDIT-20130612: 追加情報:

私のコンストラクタは次のとおりです。

ここで、mParent が NULL でないことを確認しました。

0 投票する
1 に答える
2232 参照

c++ - モードレス ダイアログの MFC C++ モーダル ダイアログを表示する

モードレス ダイアログがあります。そこから .DoModal() を実行しようとすると、ダイアログが表示されますが、モードレス ダイアログを操作することはできます。

これは、モードレス ダイアログを作成する方法です。 MyMainEditorWindow = new CMyMain(this); MyMainEditorWindow->Create(CMyMain::IDD,GetDesktopWindow()); MyMainEditorWindow->ShowWindow(SW_SHOW);

そのモードレス ウィンドウから、モーダル 1 を行うには、私は

CMyDlg myDlg; int dialogbox = myDlg.DoModal();

私がやりたいことをする方法はありますか?モードレスウィンドウのどこで、それからのダイアログは、決定されるまでそのウィンドウを待機させます。