如何把窗体里的内容存为一个位图

云路 2005-10-30 06:57:32
我在窗体中放了很多picture控件,现在我想把这个窗体的内容存为一张位图,包含已显示的picture控件在内的内容,未显示则不包含在内。或者可以指定包含那些控件。
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishmans 2005-11-05
  • 打赏
  • 举报
回复
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Sub Command1_Click()
picture1.autoredraw=true
BitBlt Picture1.hDC, 0, 0, Me.ScaleWidth, Me.ScaleHeight, Me.hDC, 0, 0, vbSrcCopy
savepicture picture1.image ,"d:\dd.bmp"
End Sub
rainstormmaster 2005-11-04
  • 打赏
  • 举报
回复
//还有拷贝时是把所有显示的内容都拷贝了下来,能不能排除某些picture的内容不拷贝在内?

拷贝时你把不需要拷贝的控件设为隐藏,拷贝结束后恢复显示即可
jack20042005 2005-10-31
  • 打赏
  • 举报
回复

云路 2005-10-31
  • 打赏
  • 举报
回复
还有拷贝时是把所有显示的内容都拷贝了下来,能不能排除某些picture的内容不拷贝在内?
云路 2005-10-31
  • 打赏
  • 举报
回复
上面的拷贝是连整个标题栏都拷下来,能不能只拷指定的区域?
lxcy 2005-10-30
  • 打赏
  • 举报
回复
得到窗体坐标,拷贝屏幕就可以了吧。
northwolves 2005-10-30
  • 打赏
  • 举报
回复
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12


Private Sub Form_Click()
If Dir("d:\123.bmp") > "" Then Kill "d:\123.bmp" '
Clipboard.Clear '清空剪切板
keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 '复制到剪切板
SavePicture Clipboard.GetData, "d:\123.bmp" '另存为
Shell "mspaint.exe d:\123.bmp", vbNormalFocus '显示成果

End Sub
szjhxu 2005-10-30
  • 打赏
  • 举报
回复
可以用Alt+PrtSc来复制运行后的屏幕,然后到画图程序中粘贴.

哈,不知你要的是不是这样的.
云路 2005-10-30
  • 打赏
  • 举报
回复
请问各位高手是否有方便快捷的方法?

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧