問題タブ [mdi]
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.
user-interface - MDI の場所はまだありますか?
MDI は有害であると見なされていますが、いくつかのアプリケーション (MS Office、Adobe アプリでさえも) は、MDI を純粋な形式で使用するか、タブ付き/IDE のようなインターフェイスを備えたハイブリッドとして使用しています。
MDI インターフェースは、一部のアプリケーションにまだ適していますか?
通常、一度に複数のドキュメントを操作し、複数のドキュメントを表示したり、それらの間でコピー/貼り付けしたりするアプリケーションを考えています。
例としてOriginがあり、プロジェクト内に複数のワークシートとグラフ ウィンドウがあります。タブ付きまたは IDE のようなインターフェイスは、何度も切り替えを行うため、はるかに不便です。
Mac では、アプリケーションがこれを解決するために複数のトップレベル ウィンドウを持つことは自然で便利ですが、MDI を使用しない場合、Windows で推奨される方法は何ですか?
.net - MDIChild フォーム内から ShowDialog() を正しく行う方法は?
ダイアログを表示する必要がある MDIChild フォームがあります。私は現在、mdichildフォーム内からこのようにやっています...
を使用する必要がありf.ShowDialog(mdiparent)
ますか?
呼び出す前に所有者を設定するときの違いは何ShowDialog()
ですか?
c# - 子フォームで検出する MDI フォームが追加または削除されました
子フォームが MDI 親から追加または削除されたかどうかを確認するために使用できるイベントはありますか?
.net - VB.netで子からmdi親に値を渡す
私は簡単な連絡帳を持っています。アプリケーションには、mdi フォームのメイン ウィンドウがあります。「連絡先の追加」フォームを使用して連絡先を追加すると、連絡先が正常に追加されたことを示す簡単なフィードバック メッセージを親ウィンドウのステータス バーに表示したいと考えています。
子の読み込みは次のとおりです。
問題は、親が実際には mdi の親であり、「連絡先の追加」フォームが.Show()
の代わりに.ShowDialog()
起動されるため、起動する Sub がアクションを実行するために使用できる戻り値を保存できないことです。
この子から mdi 親に値を渡す方法はありますか? これは、それを行う子フォームです。
PSどうやら、私は物事にタグを付けるのがかなり苦手です...そのため、この質問に再タグ付けしたい人は誰でも大歓迎です。
delphi - Delphi MDI アプリケーションが最大化された子のキャプションを表示しないようにする方法
Delphi MDI アプリケーションで、現在最大化されている MDI 子のキャプションが MDI 親フォームのキャプションに表示されないようにするにはどうすればよいですか?
前もって感謝します!
c# - 新たな希望は?ウィンドウを MDI の子にする
Winforms MDI アプリの Winform 上の C# コントロールから、または COM を介して PowerBuilder MDI アプリで使用される同じ C# コントロールから呼び出すことができる C# フォーム/コントロールをいくつか取得しました。
WinAPI 呼び出し SetParent を使用して、フォームを MDI に添付しています。
- 両方の環境で動作します (または動作するように見えます)。
- すでに開いている子ウィンドウの WindowState を引き継ぐ代わりに、子ウィンドウに独自の WindowState (Normal、Maximized) を持たせることができます (これは本当に苦痛でした)。
コントロールが T と呼ばれているとします。コントロール T のコードはフォーム D を呼び出します。
コントロール T はフォーム X にあります。
コントロール T もフォーム Y にあります。
.Net ではすべて問題なく、フォーム D は MDI 内にとどまります。
in PB:
コントロール T は PB コントロール PX にあります。コントロール T は PB コントロール PY にもあります。
PX の場合はすべて問題ありません。
ただし、PY には問題があります。フォーム D は MDI の子にならないようです。アプリの外に出て、タスクバー アイコンが表示される可能性があります。これは、機能するオブジェクトと同じオブジェクトを使用していることを強調します。SetParent は文字通り同じコード行です。
さらなる調査により、SetParent は実際には適切な MDI チャイルド化には機能しないことが明らかになりましたが、メニューなどをマージする必要がないので問題ありません。
興味深いことに、SetParent は機能しているように見えますが、GetParent を試してもハンドルが返されないことがわかりました...
parentHandle は常に 0 になります....
あらゆる状況下でフォーム D を動作させる方法はありますか? 私自身の研究は有望ではありませんでした。フォームに戻ってコントロールとして書き直して、PowerBuilder に管理させたくありません。主な理由は、各フォームに複数のインスタンスが存在する可能性があり、PowerBuilder がそれを処理する必要があるためです (私が持っているコントローラー クラス/ベース クラスの代わりに)。 .netアプリでそれをやった).
.Net 内には問題がないことを強調してもよろしいですか。問題は PowerBuilder アプリにのみ表示されます。
.net - .Net MDI フォームでの ArrangeIcons の使用法
MdiLayout 列挙には、ArrangeIcons という値があります。これが MDI 親フォームの LayoutMdi メソッドに送信されると、「すべての MDI 子アイコンが MDI 親フォームのクライアント領域内に配置されます。」
サンプル MDI フォームをまとめて、この値を LayoutMdi に渡そうとしたところ、何も起こらなかったようです。
MDI 子アイコンとは何ですか? また、ArrangeIcons 値は何のためのものですか?
mfc - ユーザー インターフェイス: MDI フレームのオントップ ステータスを切り替える最良の方法は?
Frame Windows をドキュメントのビューとして使用する MFC (VC6) MDI アプリケーションを管理しています。ドキュメントは一度に 1 つしか存在しませんが、ドキュメント データのビューがそれぞれ異なる複数の MDI フレームがあります。
最近、これらのフレーム ウィンドウの 1 つを他のウィンドウの上に表示しながら、バックグラウンド ウィンドウと対話できるようにしたいという要望がありました。
1 つのアイデアは、フレームのタイトル バーに「ピン ボタン」を追加することでした。調査中に、すべての実装で CButton オブジェクトなどの代わりにビットマップが使用されていることがわかりました。UIテーマはもちろん、デフォルトの灰色以外のウィンドウの色を使用するとすぐに、これは醜くなり始めます。
フレーム ウィンドウのメニュー (タイトル バーのウィンドウ アイコンを左クリックすると表示されるもの) のオプションは可能ですが、ユーザーにとってより明白なものを探しています。
このフレーム ウィンドウを最前面の状態に設定するには、他にどのような方法がありますか?
アップデート
XPテーマで問題なく動作するため、 Uliが提案したソリューションを使用することにしました。残念ながら、これは私の次の質問に直接つながります:フレームウィンドウを実際に一番上に保つにはどうすればよいですか?
mfc - MDI子ウィンドウを兄弟の上に置く方法は?
この質問は私の以前の質問に関連しています。
I have an MFC (VC6) MDI Application which has several MDI child windows acting as different views for one document.
Is it possible to set one of those frames to stay on top of the others?
I have tried to call
and
from the CMDIChildWnd but neither appears to work.