|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2020/2/9 10:59:05 |
标题: |
想做个自由截图的东西,但是窗体会乱跳 |
浏览:771 |
|
加入我的收藏 |
楼主: |
想做个自由截图的东西
窗体1,窗体2,窗体3
窗体1为主窗体,窗体2为显示截图窗体,窗体3为截图选择窗体显示在最顶端,点击按钮开始截图就截图
现在的问题来了,窗体3上的按钮点的开始截图,窗体3隐藏或者关闭,会自动显示窗体2,无法达到自由截图的目的
有没的什么办法,让窗体上显示在最前端,当按窗体上的开始截图,让窗体3隐藏或者关闭不让窗体2跳出
窗体显示顺序为,主窗体1,上点开窗体2,窗体2上点按钮截图,窗体3出来, 窗体3显示在最顶端然后点出其他程序来,其他程序显示在窗体3的下面,然后点窗体3开始截图,窗体3关闭或者隐藏,问题导致窗体2跳出来了,有没什么办法不让窗体2跳到前面来
大侠帮忙看看
----------------------------------------------
Delphi |
作者: |
|
2020/2/9 14:42:24 |
1楼: |
把窗体2也隐藏了啊,截完图再显示。
----------------------------------------------
-
|
作者: |
|
2020/2/10 10:30:38 |
2楼: |
把窗体2也隐藏了 窗体1就跑出来了
----------------------------------------------
Delphi
|
作者: |
|
2020/2/12 8:26:30 |
3楼: |
我说说我的截图功能实现, 参考了网上几个方法: 1.主窗体显示有截图控制选项及一个开始截图按钮 2.用户点开始截图按钮后,根据选项是否延后,是否隐藏主窗体, 然后抓取整个屏幕图像 3.将抓取到的图像显示在图形选择窗体上, 并最大化显示, 由用户用鼠标截取需要的矩形区域 4.用户选好之后将选中区域保存到剪贴板内,退出图像选择窗体,回到主窗体,操作完成.
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
|
作者: |
tuao (tuao) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/2/17 22:01:46 |
4楼: |
form1.Hide; dc := getdc(0); Canvas := tcanvas.Create; Canvas.Handle := dc; bmp := tbitmap.Create; //sleep(300); try rect1 := Rect(0, 0, screen.Width, screen.Height); bmp.SetSize(rect1.Width, rect1.Height); bmp.Canvas.CopyRect(rect1, Canvas, rect1); form2.Image1.Picture.Assign(bmp); finally form2.Show; SetWindowPos(Form2.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE) ; bmp.Free; Canvas.Free; ReleaseDC(0, dc); end;
----------------------------------------------
tuao
|
|