ウインドウを指定したデバイスコンテキストにコピー <TOP>
ウインドウを指定したデバイスコンテキストにコピーします。
PrintWindow 表示されているウィンドウを指定したデバイスコンテキスト(通常はプリンタDC)にコピー
FindWindow ウインドウのハンドル取得
テストでは、フォームにメモ帳のイメージをコピーしています。デバイスコンテキスト(hDC)をButton、Pictureに置き換えるとそれらにイメージをコピーします。
※WindowsXP/2003以降
'================================================================ '= ウィンドウを指定のDCにコピー(WindowsXP/2003) '= (PrintWindow.bas) '================================================================ #include "Windows.bi" ' 表示されているウィンドウを指定したデバイスコンテキスト(通常はプリンタDC)にコピー Declare Function Api_PrintWindow& Lib "user32" Alias "PrintWindow" (ByVal hWnd&, ByVal hdcBlt&, ByVal nFlags&) ' ウインドウのハンドル取得 Declare Function Api_FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hWnd As Long Var hDC As Long Var Ret As Long hDC = Api_GetDC(GethWnd) 'フォームのDC取得 hWnd = Api_FindWindow("Notepad", ByVal 0) 'メモ帳のハンドル取得 If hWnd = 0 Then 'メモ帳が見つからない場合は起動 Shell "Notepad.exe" Wait 20 End If hWnd = Api_FindWindow("Notepad", ByVal 0) 'メモ帳のハンドル取得 Ret = Api_PrintWindow(hWnd, hDC, 0) 'フォームにメモ帳のイメージを描画 Ret = Api_ReleaseDC(hWnd, hDC) 'DCの解放 End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End