关于对话框对自己进行抓屏的问题,如何抓到自己?

xcs99321 2011-04-21 04:03:09
我想实现启动一个对话框时,该对话框本身先抓到自己快照一张,请问快照函数放入的位置?

把快照函数放在OnInitDialog()中发现快照时,界面还没有显示,抓快照失败
把快照函数放到OnPanit()后面,也只能抓到一个空白的面板,抓快照失败
放在按钮中,界面启动后,收到点击抓快照能实现,但该方式不是自动的

请问该放在什么位置?
...全文
169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcs99321 2011-04-22
  • 打赏
  • 举报
回复
昨天的问题解决了,
后来在抓图前,加入了一个消息循环,保证界面刷新后抓图,满足工程中应用。

至于不显示窗体,直接存入bmp留到以后了。


结贴了,感谢大家
xcs99321 2011-04-22
  • 打赏
  • 举报
回复
楼上的意思是修改绘制函数吗?可是绘制曲线控件是别人的,我不能修改啊,有的时候窗体上有好多控件,也想把整个窗体绘制到图片中



觉得深入窗体绘图机制,还是有解的,如何把窗体的内存复制出来就是了,请告诉继续抛砖引玉啊
smwhotjay 2011-04-22
  • 打赏
  • 举报
回复
你可以把draw曲线到窗体改成draw到bmp上..
xcs99321 2011-04-22
  • 打赏
  • 举报
回复
没办法啊,工程中需要用到这个功能,我也不想简单问题复杂化

具体用途是,软件根据数据自动绘制曲线(可能界面不能显示),这个绘制曲线以图片形式保存,然后图片自动插入word中,

smwhotjay 2011-04-22
  • 打赏
  • 举报
回复
对话框不显示的情况下,把对话框绘制到图片中...
这技术很高超了.. 我也无法实现. 就好比,你不给牛吃草,却想挤出奶. 没有因,哪有果..
xcs99321 2011-04-22
  • 打赏
  • 举报
回复
实际需求是,希望对话框不显示的情况下,把对话框绘制到图片中,实际工程中常需要用到这个功能,查了很多资料,多年有解决?那位高手懂绘图底层,加我QQ给指导一下啊,21109024


楼上用定时器可以实现,但还是不能应用到我的工程中,

疯狂-的-蜗牛 2011-04-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xcs99321 的回复:]
顺便问一下,对话框隐藏的状态下,直接把对话框绘制到图片中啊,我找这个答案多年了
[/Quote]你是说吧对话框也抓进图片???那就别隐藏对话框啊、
xcs99321 2011-04-21
  • 打赏
  • 举报
回复
顺便问一下,对话框隐藏的状态下,直接把对话框绘制到图片中啊,我找这个答案多年了
xcs99321 2011-04-21
  • 打赏
  • 举报
回复
WM_SHOWWINDOW时候,还没有显示,得到错误的。
PostMessage时候只有白板,没有控件

用定时器实现了,在OnInitDialog()开启定时器,设置延迟1ms,定时器事件中抓图,然后关掉定时器就可以了
HowToP2p 2011-04-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xcs99321 的回复:]
WM_SHOWWINDOW,PostMessage都失败了,难道只能用定时器吗,定时器可靠性不高,还有别的办法吗
[/Quote]
是得不到还是?
xcs99321 2011-04-21
  • 打赏
  • 举报
回复
WM_SHOWWINDOW,PostMessage都失败了,难道只能用定时器吗,定时器可靠性不高,还有别的办法吗
HowToP2p 2011-04-21
  • 打赏
  • 举报
回复
处理对话框WM_SHOWWINDOW,在响应函数里PostMessage自定义消息,放在自定义消息处理函数里
这样试试
疯狂-的-蜗牛 2011-04-21
  • 打赏
  • 举报
回复
设置一个定时器试试

15,979

社区成员

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

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