質問

Win32プログラミングでは、ウィンドウの親とウィンドウの所有者との違いは何ですか?私はそれを考え出したと思っていた、そして私は、このコードに出くわします:

SetWindowLong(handle, GWL_HWNDPARENT, foo);
GWL_HWNDPARENTが使用されているにもかかわらず -

これは実際には、ウィンドウの所有者ではなく、親を設定します。用語親/オーナー互換性があり、あるいは実際に違いがありますか?

役に立ちましたか?

解決

所有者は、ウィンドウ(窓を破壊する/作成を担当例えば)*コントロールまたはダイアログを担当しています。

親は、ウィンドウチェーンのコントロールまたはダイアログの隣に、シニアの窓*ですが、それは(必ずしも、そのライフサイクルについてなどを気にしない)ため、実際には責任を負いません。ウィンドウの親も、その所有者であることができます。

*ウィンドウVSウィンドウ:ウィンドウが画面に表示される実際のウィンドウです。ウィンドウは、HWND(ETCボタン、パネルを含む)を有する任意のオブジェクトである。

他のヒント

所有親がトップレベルとWS_CHILD、又はWS_CHILD別WS_CHILDの関係である2つのトップレベルウィンドウとの間の関係です。

ボタンの親は、メッセージボックスがそれを示したフォームによって所有されている間、それは、上にある形態である。

のWin32ウィンドウ階層とスタイルを取得するためにをマイクロソフトからこの記事を読みます所有権、子育て、ZORDER、SetWindowLong関数、は、GetWindowと窓との関係を作成するためのWin32 APIの他のすべての厄介なビットのより明確に理解しています。

EDIT:Microsoftは、コンテンツが、ここのhref = "http://msdn.microsoft.com/en-us/library/ms632599%28v=VS.85%29.aspx# <他の合理的であることを降ろしたように見えますowned_windows」のrel = "noreferrer">所有権の概要/子育てするます。

陳さんのブログ記事は読むことです。私のためのキーポイントは、WS_CHILDスタイルは、子ウィンドウ上で使用しなければならないことです。あなたは)子ウィンドウを作成してのcreateWindow(にして親ハンドルを渡そうとすることができますが、WS_CHILDスタイルは2つのウィンドウが設定されていない場合は、所有者の関係ではなく、親/子関係を持つことになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top