3

MDI アプリがあります。子ウィンドウの非クライアント タイトル バーにアイコンを追加して、ウィンドウを親 MDI コンテナーとは別にフローティングできるようにして、ユーザーが子ウィンドウを取得し、MDI の外側でデスクトップの周りに任意に配置できるようにしたいと考えています。窓。

私はそれが行われたのを見たので、それが可能であることは知っていますが、それを達成する方法を理解するのに苦労しています.

私は WTL (Windows Template Library) を使用していますが、これに MFC と Win32 のタグを付けています。これは、基本的な原則は同じであり、人々は Windows API のスペクトル全体の知識を持っている可能性があるためです。

4

1 に答える 1

4

これを行ってからしばらく経ちましたが、ウィンドウを親からエスケープさせるにはSetParent (your_hwnd, 0)を呼び出すだけで十分だったと思います。

メッセージの受け渡しが少し変更されるため、一部のメッセージをメイン ウィンドウから以前の子ウィンドウにリダイレクトする必要がある場合があります。これは、MDI アプリケーションのメイン メニューを元の子と連携させたい場合に必要となる可能性が最も高いです。

描画に問題がある場合は、SetWindowLongを使用してウィンドウ スタイルを変更する必要がある場合があります。

ところで、WTL を使用するのは良い選択です。私の意見では、付加機能のない非常に優れた API 抽象化です。

于 2009-03-20T14:34:45.477 に答える