2017-11-22 11 views
3

1を使用してウィンドウハンドルを取得することができます。firemonkey MacOSウィンドウIDを取得する方法? MS Windowsでは

WindowHandleToPlatform(winhandle).wnd 

どのように1は、MacOSのウィンドウ "ID" を取得ん:たとえばウィンドウIDを受け入れる機能を

を:

CGWindowListCreateImage(
    CGRect screenBounds, 
    CGWindowListOption listOption, 
    CGWindowID windowID, // <------------------ here 
    CGWindowImageOption imageOption); 
+0

それは文字通り、ウィンドウのIDを_require_しません。 [参照](https://developer.apple.com/documentation/coregraphics/1454852-cgwindowlistcreateimage)には、_ "イメージに含める他のウィンドウを決定する際の基準点として使用するウィンドウのIDが記載されています。このパラメータはkCGNullWindowIDです。 "_そのリスト内の特定のウィンドウIDから始まるウィンドウリストからコンポジットイメージを作成しますか? – Victoria

+1

もし誰かが 'WindowHandleToPlatform(h).Wnd.WindowNumber'が正しいと知っていれば教えてください。それは答えとして追加することができますが、これが正しいかどうかはわかりません。 – Programmz

+0

@Victoria、おそらく、参照ウィンドウが必要だったらどうしますか?あなたはそれのwindowID、または何が必要なのですか? – Programmz

答えて

4

Windowsの場合、WindowHandleToPlatform()は、の場合はTWinWindowHandleを取得します。 TWinWindowHandleは(とりわけ)ウィンドウのHWNDを含んでいます。 OSX、WindowHandleToPlatform()

は、ウィンドウのNSWindowNSViewNSTrackingArea、およびNSOpenGLViewオブジェクトが含まれ、TMacWindowHandleを取得します。あなたは、例えば、NSWindow.windowNumberフィールドからCGWindowIDを取得することができます。

WindowHandleToPlatform(winhandle).Wnd.windowNumber 
+0

私はこの回答を受け入れますが、検証するためにまだテストできません。 (うまくいけば)、私はこのページを再訪して答えを受け入れる – Programmz

関連する問題