关于ShowWindow,GDI

oldn123 2007-07-06 03:42:11
CreateWindow是建立一个窗口,显示窗口是通过ShowWindow,ShowWindow会间接向系统发送WM_PAINT消息,通过WM_PAINT向指定的DC 上画窗口.那么画窗口的过程是通过SendMessage(WM_PAINT...)完成的,现在我想在GDI函数中找到一个可以取代SendMessage画窗口的函数,不知道可不可以找到,如BitBlt可以画个图图,那么什么函数可以画Window呢?请高手指点一下,谢谢
...全文
330 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldn123 2007-07-10
  • 打赏
  • 举报
回复

谢谢
就这样吧
那用WH_GETMESSAGE钩消息队列应该就可以了,通WM_PAINT 应该可以拿到DC,之后自己去bitblt可以拿到图
龙凤呈祥焱 2007-07-09
  • 打赏
  • 举报
回复
WM_PAINT消息不是通过SendMessage来发送的。是由系统产生的。是系统放到你的消息队列。你用SPY++抓一下就知道了。
oldn123 2007-07-09
  • 打赏
  • 举报
回复
顶个再闪
oldn123 2007-07-09
  • 打赏
  • 举报
回复
那么一个窗口从create到show一定是通过WM_PAINT完成的么?
我用hookAPi的方法hook的sendmessagew,发现并没有调用wm_paint消息
龙凤呈祥焱 2007-07-09
  • 打赏
  • 举报
回复
一般WM_PAINT消息同系统产生,也就是由系统决定哪个窗口需要重画。
当你创建一个窗口后,这个窗口就会有某些属性。
系统根据这些属性决定当前窗口是否需要重绘,然后将消息发送到窗口的消息处理函数。这时如果用户进行了处理就会显示用户处理的结果,或者调用系统默认的消息处理函数产生系统默认结果。
窗口由多个部分组成。标题栏,客区等等。每部分都有自己的重绘消息。
标题及边框区是WM_NCPAINT,客区是WM_PAINT,控件及菜单可以自绘制。还可以设置窗口的区域(形状)。这样什么窗口都可以画出来了。
oldn123 2007-07-09
  • 打赏
  • 举报
回复
今天测试了一下
窗口建立完并显示过程中并没有调用SendMessage(WM_PAINT..),那么窗口究竟是怎么被画到我们的桌面上的呢??
oldn123 2007-07-06
  • 打赏
  • 举报
回复
临走时得up一下才可以
lyg_zy 2007-07-06
  • 打赏
  • 举报
回复
up
oldn123 2007-07-06
  • 打赏
  • 举报
回复
对啊
MS也是画出来的
没有给我们函数么?
龙凤呈祥焱 2007-07-06
  • 打赏
  • 举报
回复
不是画不了。
是太麻烦。
何苦呢??
MS也是画出来的。
oldn123 2007-07-06
  • 打赏
  • 举报
回复
那么结了?
oldn123 2007-07-06
  • 打赏
  • 举报
回复
切断了源头。你怎么也不行。就这么简单。
_______________________________________
当然不是断了源头
画之前我是有hWnd的
也可以GetWindowDC得到DC
如你所说
"这么说吧。
GDI函数要DC才能画,
DC来源一是设备DC,二是内存DC。
画到内存也要复制到屏幕上才能显示。
屏幕上可见的一定要通过窗口句柄才能获取相关的DC。"
那么有DC了,GDI画不了?
龙凤呈祥焱 2007-07-06
  • 打赏
  • 举报
回复
没有这种函数。
画控件外框的就有。DrawFrameControl
标准窗口就没有。如果你非得自己画,
这么说吧。
GDI函数要DC才能画,
DC来源一是设备DC,二是内存DC。
画到内存也要复制到屏幕上才能显示。
屏幕上可见的一定要通过窗口句柄才能获取相关的DC。
没有CreateWindow就不会有窗口句柄。
切断了源头。你怎么也不行。就这么简单。
直接往桌面上画???
那你如何处理覆盖的问题???
真搞不懂在windows环境下,系统提供了这么方便的功能,你非得自己来实现系统已经实现的功能。
不累么???
面且实现了以后问题多多。
哎。。。。
都不知道你是怎么想的。
oldn123 2007-07-06
  • 打赏
  • 举报
回复
我也想系统帮我搞定,所以想找个GDI函数,不要让我通过CreateWindow/ShowWindow这个实现,也不要通过消息画,就要GDI函数
oldn123 2007-07-06
  • 打赏
  • 举报
回复
想自己画一个仿windows的窗口??

对对
这就是我想作的
龙凤呈祥焱 2007-07-06
  • 打赏
  • 举报
回复
想自己画一个仿windows的窗口??
你的勇气值得佩服。
而且这些简单重复而又精重的活。系统会帮你搞定,为什么要自己动手???
都不知道你想做什么??
实现自己的窗口风格???
windows支持自绘制。
oldn123 2007-07-06
  • 打赏
  • 举报
回复
都是向桌面上画东东
窗口也是图图啊
xuayn312 2007-07-06
  • 打赏
  • 举报
回复
好象......没有吧

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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