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


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

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

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/17 23:12:00 [显示全部帖子]

没有办法设置。

可以利用窗口打印功能,但是只能打印一层的控件,不支持嵌套的控件打印,而且部分控件也无法打印。
可以利用截图功能,不过也只能截图屏幕看得到的地方

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 8:48:00 [显示全部帖子]

全局代码:

Public Declare Function CreateDC  Lib "gdi32.dll" (ByVal lpszDriver As String, ByVal lpszDevice As String, ByVal lpszOutput As String, ByVal lpInitData As IntPtr) As IntPtr

Public Declare Function BitBlt Lib "gdi32.dll" (ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As UInt32) As Integer

Public Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As IntPtr

Public Declare Function CreateCompatibleBitmap Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal nWidth As Integer, ByVal nHeight As Integer) As IntPtr

Public Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal hgdiobj As IntPtr) As IntPtr

Public Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As Integer

Public Declare Function PrintWindow Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As UInt32) As Boolean

Public Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr


Public Function GetWindow(ByVal hWnd As IntPtr) As Bitmap
    Dim hscrdc As IntPtr = GetWindowDC(hWnd)
    Dim control As system.windows.forms.Control = system.windows.forms.Control.FromHandle(hWnd)
    Dim hbitmap As IntPtr = CreateCompatibleBitmap(hscrdc, control.Width, control.Height)
    Dim hmemdc As IntPtr = CreateCompatibleDC(hscrdc)
    SelectObject(hmemdc, hbitmap)
    PrintWindow(hWnd, hmemdc, 0)
    Dim bmp As Bitmap = Bitmap.FromHbitmap(hbitmap)
    DeleteDC(hscrdc)
    DeleteDC(hmemdc)
    Return bmp
End Function

打开需要截图的窗口,必须是独立,或者模式窗口
Dim f = Forms("窗口3")
f.open
Dim bit As Bitmap  = GetWindow(f.baseform.handle)
bit.save("D:\123.jpg")

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 10:21:00 [显示全部帖子]

没有办法一次性截图。只能截图窗口看得到的地方。网上搜了一下,一般都是截图,然后移动滚动条,然后截图,然后移动....最后把所有的截图合并到一起。

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 10:40:00 [显示全部帖子]

foxtable的窗口打印是可以的。

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 10:51:00 [显示全部帖子]

窗口打印只能打印一层的控件,不支持嵌套的控件打印,比如panel里面有一个页面集合,可以打印panel里面的第一层控件,无法打印页面集合里面的内容

而且部分控件也无法打印。

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


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 13:58:00 [显示全部帖子]

这个我也没有办法

 回到顶部