| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2011 人关注过本帖
标题:帮看下控件坐标是缺什么,总得不到正确截图
取消只看楼主 加入收藏
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:616
注 册:2012-9-21
结帖率:96.67%
收藏
已结贴  问题点数:10 回复次数:3 
帮看下控件坐标是缺什么,总得不到正确截图
lnTop=_screen.Top+SYSMETRIC(9)+SYSMETRIC(11)+thisform.image4.top &&控件行坐标
&&主窗口TOP + 表单头 + 不可调边框 + 控件TOP

lnleft=_screen.left+SYSMETRIC(10)+thisform.image4.left &&控件纵坐标
&&主窗口LEFT + 不可调边框 + 控件LEFT

lnRight=lnTop+thisform.image4.width  &&图片高

lnBottom=lnleft+thisform.image4.height &&图片宽

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: thisform 控件 Top left 坐标 
2019-08-31 12:35
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:616
注 册:2012-9-21
收藏
得分:0 
按钮的CLICK事件,提示出错, 就是截取这个图片控件截不准

Lparameters  lnLeft, lnTop, lnRight, lnBottom

lnTop=thisform.image4.top          &&  此行用_SCREEN.TOP+THISFORM.IMAGE4.TOP  就不出错
lnleft=thisform.image4.left       &&
lnRight=thisform.image4.width    &&
lnBottom=thisform.image4.height  &&

    #Define CF_BITMAP   2  
    #Define SRCCOPY     13369376  
    Declare INTEGER GetLastError IN kernel32
    Declare INTEGER GetActiveWindow IN user32
    Declare INTEGER GetWindowDC IN user32 INTEGER hwnd
    Declare INTEGER GetDC IN user32 INTEGER hwnd
    Declare INTEGER CreateCompatibleDC IN gdi32 INTEGER hdc
    Declare INTEGER DeleteDC IN gdi32 INTEGER hdc
    Declare INTEGER CreateCompatibleBitmap IN gdi32 INTEGER hdc,INTEGER nWidth,INTEGER nHeight
    Declare INTEGER ReleaseDC IN user32 INTEGER hwnd, INTEGER hdc
    Declare INTEGER SelectObject IN gdi32 INTEGER hdc, INTEGER hObject
    Declare INTEGER DeleteObject IN gdi32 INTEGER hObject
    Declare INTEGER BitBlt IN gdi32 INTEGER hDestDC,INTEGER x, INTEGER y,INTEGER nWidth,;
            INTEGER nHeight,INTEGER hSrcDC,INTEGER xSrc, INTEGER ySrc,INTEGER dwRop
    Declare INTEGER OpenClipboard IN user32 INTEGER hwnd
    Declare INTEGER CloseClipboard IN user32
    Declare INTEGER EmptyClipboard  IN user32
    Declare INTEGER SetClipboardData IN user32 INTEGER wFormat, INTEGER hMem
    lnWidth = lnRight - lnLeft + 1
    lnHeight = lnBottom - lnTop + 1
    HWnd = GetActiveWindow()
    *hdc = GetWindowDC (hwnd)         &&改这句会出错
    hdc = GetDC (thisform.hwnd)   
    hVdc = CreateCompatibleDC (hdc)
    hBitmap = CreateCompatibleBitmap (hdc, lnWidth, lnHeight)
    = SelectObject (hVdc, hBitmap)
    = BitBlt (hVdc, 0,0, lnWidth,lnHeight,;
        hdc, lnLeft,lnTop, SRCCOPY)
    = OpenClipboard (hwnd)
    = EmptyClipboard()

    lnResult = SetClipboardData (CF_BITMAP, hBitmap)
    If lnResult = 0
    =MESSAGEBOX('出错了!!!',0,'')
    Endif
    = CloseClipboard()
    = DeleteObject (hBitmap)
    = DeleteDC (hVdc)
    = ReleaseDC (hwnd, hdc)

    retu
2019-08-31 16:54
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:616
注 册:2012-9-21
收藏
得分:0 
再烦请教,直接存入剪贴板要怎样改? 不要用文件转到剪贴板,因为很多时侯并不需要保存到文件,而是截取一部分图到剪贴板就直接发QQ了,这样就少了一项将图片保存到磁盘,再读入剪贴板,然后再删除文件
2019-08-31 22:12
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:616
注 册:2012-9-21
收藏
得分:0 
完美
2019-09-01 10:26
快速回复:帮看下控件坐标是缺什么,总得不到正确截图
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040033 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved