Foxtable(狐表)用户栏目专家坐堂 → 可以把打开的窗口 设置 分辨率 所有内容一起 导出图片吗


  共有3764人关注过本帖树形打印复制链接

主题:可以把打开的窗口 设置 分辨率 所有内容一起 导出图片吗

帅哥哟,离线,有人找我吗?
a937775799
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
可以把打开的窗口 设置 分辨率 所有内容一起 导出图片吗  发帖心情 Post By:2020/3/17 23:03:00 [显示全部帖子]

可以把打开的窗口 设置 分辨率 所有内容一起 导出图片吗,程序一个窗口显示的不全,会有下拉栏,我想导出选择设置分辨率,导出一个完整的大图片,这样可以单独打印a1,a2,a3都可以
[此贴子已经被作者于2020/3/17 23:11:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/17 23:13:00 [显示全部帖子]

这下悲剧了,完蛋了

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/18 0:36:00 [显示全部帖子]

我在全局代码里这么写但是都调试不过,对象.hdc 好像是什么 什么东西 来着,不知道怎么弄了 ,我对。net 不熟啊 麻烦帮我改改
'添加如下声明
Private structure re
   Dim  Left As Long
   Dim  Top As Long
   Dim  Right As Long
   Dim Bottom As Long
End structure 
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As re) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
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

'添加这个函数
Public  Function GetWndPic(Wnd As Long, f As WinForm.Form , pic As WinForm.PictureBox )
        Dim R As re, DC As Long
        GetWindowRect( Wnd, R) '获取指定窗口的左上角?右下角位置(以便获取其大小)
        DC = GetWindowDC(Wnd) '得到dc        
        BringWindowToTop( Wnd )'目标窗口提到前面(非置顶)
        BitBlt( pic.hdc , 0, 0, f.Width, f.Height, DC, 0, 0, vbSrcCopy ) '复制绘图
    ReleaseDC( Wnd, DC) '释放
End Function
'调用示例(把句柄131454的程序窗口截图放到Picture1中)
'GetWndPic 131454, Picture1
[此贴子已经被作者于2020/3/18 2:32:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/18 10:01:00 [显示全部帖子]

我试下了 可以用  但是有个问题, 截图的是刚刚的窗口大小呢, 我电脑 屏幕小,窗口下面还有滚动的没有截 出来呢,而且 有点不清晰

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/18 10:36:00 [显示全部帖子]

好的 我去 看看 , 顺便问问 如果不截图 直接打印 ,那么这种滚动窗体 能直接打印出来吗

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/18 10:47:00 [显示全部帖子]

那我  换个思路  把整个窗口打印  导出到pdf,比如我这个窗口,这样的思路可以吗

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200318104628.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2020/3/18 10:47:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
a937775799
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/3/18 13:43:00 [显示全部帖子]

这个全局代码我 弄上去
这是在一个按钮里面,但是保存的效果好不好,一放大就模糊了
Dim f = e.Form
Dim bit As Bitmap  = GetWindow(f.baseform.handle)
bit.SetResolution(600F, 600F)
bit.GetThumbnailImage(1366, 768 , Nothing, Nothing).save("D:\123.bmp")
'bit.save("D:\123.bmp")

 回到顶部