掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
vb.netでAPI技術関連のbitbltを使用するには? (ID:79492)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
最終的にどうしたいのか、解らないのですが・・・ hdcを得る方法が間違っているようです。 部分的に書きますと・・・ ※ フォームのコピー画像をファイルに保存するコードです。 尚、必要な部分しか掲載していません。 <DllImport("gdi32.dll")> Public Function BitBlt(ByVal srchDC As Integer, ByVal srcX As Integer, ByVal srcY As Integer, ByVal srcW As Integer, ByVal srcH As Integer, ByVal desthDC As Integer, ByVal destX As Integer, ByVal destY As Integer, ByVal op As Integer) As Integer End Function <DllImport("user32.dll")> Public Function GetWindowDC(ByVal hWnd As Integer) As Integer End Function Public Sub CaptureScreen(ByRef f As Form, ByVal szFile As String, ByVal iType As enumImageTypes, ByVal iQuality As Integer, ByVal bStart As Boolean) Dim hSDC, hMDC As Integer Dim hBMP, hBMPOld As Integer Dim r As Integer Dim FW, FH As Integer Dim bmp As Bitmap hSDC = GetWindowDC(f.Handle.ToInt32) 'hSDC = GetDC(f.Handle.ToInt32) hMDC = CreateCompatibleDC(hSDC) FW = f.Width FH = f.Height hBMP = CreateCompatibleBitmap(hSDC, FW, FH) hBMPOld = SelectObject(hMDC, hBMP) r = BitBlt(hMDC, 0, 0, FW, FH, hSDC, 0, 0, 13369376) hBMP = SelectObject(hMDC, hBMPOld) r = ReleaseDC(f.Handle.ToInt32, hSDC) r = DeleteDC(hSDC) r = DeleteDC(hMDC) bmp = Image.FromHbitmap(New IntPtr(hBMP)) DeleteObject(hBMP) Call bmp.Save(szFile) ・・・・ ここで、『hSDC = GetWindowDC(f.Handle.ToInt32)』としている部分を 見て下さい。ウィンドウハンドルからデバイスコンテキストハンドルへの 変換をAPIを使って行っています。 多分、そこが間違っているのではと思いますが。 ご検討下さい。 以上。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.