問題タブ [cdialog]
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.
windows - CDialog の作成を傍受する
多くの異なる MFC CDialog 派生ダイアログ ウィンドウを表示するかなり大きなアプリがあります。すべてのダイアログは、次のような中央関数から表示されます。
ここで、基本的にすべてのダイアログの OnInitDialog メソッドで関数を呼び出す必要があります。技術的には OnInitDialog 内にある必要はありませんが、ダイアログが表示される前にあることが望ましいです。
強引な方法は、コードを調べて最後のすべてのダイアログを見つけ、関数呼び出しを OnInitDialog メソッドに追加することです (存在する場合は追加し、存在しない場合は追加します)。しかし、もっとエレガントな方法が必要なようです...
dlg は実際には CDialog ではなく、そこから派生したものであることに注意してください。
アイデア、トリック、ハックはありますか? 私はメッセージ マップにパッチを適用する以上のことはしませんが、よりクリーンで安全なものを見つけたいと思っています。
c++ - CDialogShowWindowの問題
SDIアプリケーションがあります。アプリケーションには、作業中のサーバーとの通信などのメッセージを表示するために使用されるモードレスダイアログがあります。問題は、ダイアログの親ウィンドウがメインフレームに設定されている場合、ShowWindowメソッドが期待どおりに機能しないことです。ダイアログはメインフレームで覆われているようです。ShowWindow呼び出しの横にSleep呼び出しを置くと、ダイアログが表示されます。そして、スリープが終了すると、ダイアログが消えます。ダイアログの親を設定しない場合、ShowWindow呼び出しは正常に機能します。ただし、ダイアログの親ウィンドウを設定したいのですが。それで、それをどのように解決するのですか?
c++ - MFC DLL からダイアログを表示
フォームを読み込んだが、機能のないボタンのみ
フォームの完全な機能をロードする方法と、DLL ソース コードを持っていない方法
windows-7 - MFCエアロシェイクウィンドウメッセージ
私はMFCに組み込まれたプログラムに取り組んでいます。
CFormViewを振ると、この奇妙な状況になります。最初はすべてが正しく最小化されていますが、すべてのウィンドウが復元されているときに2回目に振ると、CFormView内のCDialogの1つが後ろになりますが、前にあるはずです。
2回目のシェイクのイベントをどのようにキャッチできますか?CDialogにどのようなメッセージを送信しますか?
メッセージマップで宣言できるものですか?
インターネットでは何も見つかりませんでした。
visual-studio-2010 - VC10でCDialogメモリリークが発生する
VC8からVC10にアップグレードしており、CDialogに関連していると思われるメモリリークが多数見つかりました。この最も簡単な例は、ボタンの数だけがあるCDialogを使用した次のコードで示されています。VC10ではこれはリークしますが、VC8ではリークしません。
メモリ使用量は増え続けており、約30個のボタンを使用したダイアログの例では数十Mbがリークしています。
上記は、ダイアログ処理コードをすべて削除したテスト例であることに注意してください。実際のコードでは、派生クラスがあり、PostNcDestroy()を使用しています。
奇妙なことに、次のコード例はいずれもVC8でもVC10でもリークしません。
ここで何が欠けていますか?
c++ - タスクバーから CDialogEX を非表示にする方法は? (MFC C++)
私はメインフレームを持っています。誰かがボタンを押すと、CDialogEX が開きます。
開いた後、タイトルやアイコンのない空のタスクバータブが表示されます...
メインフレームの子ウィンドウとして、タスクバータブなしで開きたいです。
スタイルなどを使用してみましたが、何も機能しません。
何か案は?
windows - CDialogポップアップにシステムメニューを表示するには?
私は CDialog ベースのアプリケーションを持っています。Visual Studio リソース エディターで、ダイアログのプロパティは、スタイルが「ポップアップ」に設定され、システム メニューの値が「True」であることを示しています。ただし、アプリケーションを実行すると、システム メニューが表示されません。システム メニューを表示するにはどうすればよいですか? 最初に SetIcon() でアイコンを設定する必要がありますか?
リソースファイルからの私のダイアログの定義は次のとおりです。
c++ - マウスオーバーに応答してCDialogアイコンを変更するには?
マウスオーバー時にアプリケーション アイコンを変更するにはどうすればよいですか? CDialog のシステム メニューにいくつかのメニュー項目を配置したいのですが、ユーザーがアイコンの上にマウスを置いたときにアイコンを強調表示して、それがユーザー インターフェイス コンポーネントであることを示したいです (最近のバージョンの firefox に firefox メニューがあるのと同様です)。オレンジ色で、マウスオーバーするとハイライトされます)。
アップデート
「アプリケーション アイコン」とは、システム メニュー アイコンを意味します。また、システムメニューではありませんが、有望に見える CMFCRibbonApplicationButton クラスに出くわしました。
mfc - CDialog :: OnInitDialogから、またはこの関数が終了した直後にダイアログmfcアプリケーションを終了するにはどうすればよいですか?
私のアプリケーションの1つのケースでは、ダイアログのOnInitDialogで、またはこの関数の直後にアプリケーションを終了したいと思います。それを行う方法はありますか?
OnInitDialogでSendMessageを呼び出し、送信されたメッセージのハンドラーでOnCloseを呼び出して、Windowsメッセージを使用しようとしましたが、ダイアログが表示されたままであるため、意図したとおりに機能しませんでした。