![](/img/trans.png)
[英]VS 2010 C++/CLI Solution on Win 7 32-bit works but on Win7 64-bit does NOT
[英]CopyFromScreen works on 32-bit Win10 computer but not 64-bit
我在Win10 32位計算機上開發了此代碼。 我在面板pnlFull中放置了一些圖形。 然后,我復制pnlFull的內容並將其另存為bmp文件在磁盤上。 調試/發布/ AnyComputer / 32位/ 64位都可以在32位計算機上正常運行。 發行版32位/ 64位/ AnyComputer在64位計算機上無法正常工作。 在64位計算機上,副本的起源在pnlFull之外。 根據我的表單在屏幕上的位置,副本的來源甚至位於表單之外。 我真的很感謝您的幫助。
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
我認為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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.