VC 关于对话框的一个菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 05:32:45
建一个基于对话框的程序,我想在对话框显示出来之前,将整个屏幕截图,然后将对话框全屏显示,将截下来的图显示在对话框中。就是说,我不想在截下来的图中有这个对话框的窗体。
我应该把这些截图的函数往哪里写?是不是要重载个什么函数。。。

这样也行,就是在这个对话框程序运行以后,ShowWindow(SW_HIDE)将这个对话框隐藏起来,然后截下整下屏幕,这样图上也不会有这个对话框的窗体。但是之后要将这张图贴上对话框,然后显示,ShowWindow(SW_SHOW),但是这样我为什么看不到效果,图贴不上。是不是ShowWindow时,与OnPaint()这个函数有关,所以刷新了下,我就看不到了?但是我将这些代码包括showwindow写进OnPaint(),出现了死循环。。。

谢谢了。。。正确的要怎么做啊
也可以发到我邮箱哦,120179680@qq.com.....

OnPaint()可以说是一个无限循环函数,你可以用一个全局变量做一个标识,
如 BOOL bFlag并把他赋值TRUE,然后在OnPaint()里调用你的代码之前判断这个标识,当为TRUE时就执行你的函数,然后将他赋值FALSE,这样你的代码就不会被无限循环调用了。当你要再次调用这个函数时,就在外面将这个标识赋值TRUE就行了。

呵呵,如果真的是赏金的话,我觉得你这个问题能值100分。
给个思路吧:
1)对话框类里添加个DC(做兼容DC)。
2)在OnInitDialog里截图,把图存在兼容DC里;最大化对话框。
3)在OnPaint里把兼容DC的内容贴到窗口里。注意在OnPaint里应该有判断机制,只是对第一次Paint时,把存在兼容DC里的截屏给贴出来。

代码不高兴写了,太麻烦,原谅。如果码代码时,遇到问题的话,再把问题贴出来吧。

P.S.也可以试下不在Paint里贴兼容DC,感觉在其它事件中贴比较合适。