デバイスコンテキストからウィンドウハンドルを取得 <TOP>
WindowFromDC デバイスコンテキストからウィンドウハンドルを取得
例では、GethWnd(フォームのハンドル)とデバイスコンテキストから取得(WindowFromDC)したハンドルが同じであることを表しています。
'================================================================ '= デバイスコンテキストからウィンドウハンドルを取得 '= (WindowFromDC.bas) '================================================================ #include "Windows.bi" ' デバイスコンテキストからウィンドウハンドルを取得 Declare Function Api_WindowFromDC& Lib "user32" Alias "WindowFromDC" (ByVal dDC&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Text(3) As Object For i = 0 To 3 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) Text(i).SetFontSize 14 Next '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hDC As Long Var Ret As Long 'ウィンドウ(メインフォーム)のハンドルを取得表示 Text(2).SetWindowText "&&H" & Hex$(GethWnd) 'デバイスコンテキストを取得 hDC = Api_GetDC(GethWnd) 'デバイスコンテキストからウィンドウハンドルを取得 Ret = Api_WindowFromDC(hDC) '取得したハンドルを表示(GethWndと同じ) Text(3).SetWindowText "&&H" & Hex$(Ret) 'デバイスコンテキストの解放 Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End