2016-12-18 18 views
0

このコードはWin10 32ビットマシンで開発しました。私はいくつかのグラフィックをパネルに入れました、pnlFull。次に、pnlFullの内容をコピーし、bmpファイルとしてディスクに保存します。デバッグ/リリース/ AnyComputer/32ビット/ 64ビットはすべて32ビットマシンで正常に動作します。リリース32ビット/ 64ビット/ AnyComputerは、64ビットマシンで正しく機能しません。 64ビットマシンでは、コピーの起点はpnlFullの外側のどこかにあります。私のフォームが画面上のどこにあるかによって、コピーの起源はフォームの外側にある場合もあります。私は本当に助けに感謝します。CopyFromScreenは32ビットWin10コンピュータで動作しますが64ビットでは動作しません

Private Sub Capture_Preset() 
    Using tmpImg as New Bitmap(pnlFull.Width, pnlFull.Height) 
    Using g as Graphics = Graphics.FromImage(tmpImg) 
    g.CopyFromScreen(pnlFull.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(pnlFull.Width, pnlFull.Height)) 
    End using 
    tmpImg.Save("C:\ProgramData\Paedia\DiablocData\PresetImg(" & PresetNumber & ").bmp", Imaging.ImageFormat.Bmp) 
    End using 
End Sub 

答えて

0

私はControl.DrawToBitmap()が必要なものだと思います。コントロールが自分の選択したビットマップに描画されます:

Using tmpImg as New Bitmap(pnlFull.Width, pnlFull.Height) 
    pnlFull.DrawToBitmap(tmpImg, New Rectangle(New Point(0, 0), tmpImg.Size)) 
    tmpImg.Save("C:\ProgramData\Paedia\DiablocData\PresetImg(" & PresetNumber & ").bmp", Imaging.ImageFormat.Bmp) 
End Using 
+0

VV:これが動作します。どうもありがとう! –

+0

@ Nordic_1:聞いてうれしい!私の投稿の左側にあるチェックマークを押して、これを受け入れられた回答としてマークしてください。 –

+0

完了。とても有難い。 –

関連する問題