为什么不能在WM_CREATE中绘制

原创 2012年03月26日 21:21:28

问题:

case WM_CREATE:
  TextOut(hdc,10,53,TEXT("OKOK"),4);//这条语句不能打印出结果,即不可见
  return 0;

case WM_PAINT :
  hdc=BeginPaint(hwnd,&ps);
  TextOut(hdc,10,53,TEXT("OKOK"),4);//这条语句可以正确打印结果
  EndPaint(hwnd,&ps);
  return 0;

如下,为什么TextOut(hdc,10,53,TEXT("OKOK"),4);这条语句必须要放在WM_PAINT :这个消息下才有正确的执行结果,在屏上打印字符,而放在WM_CREATE:消息下无任何反应呢?


答:

1、由于WM_CREATE只产生一次,即使绘制了,其绘制的东西也会因为WM_PAINT的响应而被清除掉。

在窗口无效(或部分RECT无效)时,是会反复接收到WM_PAINT消息的。所以这里绘制是最好的。

2、在WM_CREATE时,窗口句柄尚未生效。可以GetLastError查看。

3、事实上WM_CREATE里面根本无法绘制任何图形,因为绘制环境还没有创建(必须的)


相关文章推荐

MFC中有关WM_CREATE消息

我只知道在创建完一个窗口后,显示窗口前要调用OnCreate函数,由于Windows应用程序是一种消息处理 机制,当创建完一个窗口后,Windows应用程序就处于等待消息的状态,如果我在OnCrea...

vc 之WM_CREATE

WM_CREATE是windows中一个窗口消息。   当一个应用程序创建窗口时,会通过消息处理函数。但是这个消息在 CreateWindow 函数返回之前被送到消息处理函数。   例如,当要获取系统...

WM_CREATE消息的处理过程

今天在看的时候, 有一个小问题困扰了我很长时间.书中写到在CreateWindowEx函数中会发出WM_CREATE消息, 之后会在CmainFrame::OnCreate中处理. 我突然想到, 在C...

WM_CREATE 和 WM_INITDIALOG 什么时候发送的?

WM_CREATE 和 WM_INITDIALOG 什么时候发送的?

WM_INITDIALOG与WM_CREATE消息的区别

WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕(可以安全的使用这个窗口了,例如在它上面画控件等)。在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是...

WM_CREATE和WM_INITDIALOG消息响应函数之区别,以及MFC应用程序中处理消息的...

在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初...
  • a199228
  • a199228
  • 2011年09月05日 22:54
  • 1165

WM_CREATE,WM_INITDIALOG 区别,以及MFC应用程序中处理消息的顺序

响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初始...

WM中使用C#自已绘制的一个列表控件

使用C#做WM客户端时,发现,没有一个像样的信息列表展示的控件,ListView虽然有五种类型,可是依然非常不给力。一、控件外观: 控件的外观是我自己设计,没有得到美工的支持,所以可能会有点丑。但大致...

WM_CREATE ,WM_NCCREATE,WM_DESTROY,WM_NCDESTROY详解

【原文地址:http://blog.csdn.net/yfqvip/archive/2008/11/28/3403411.aspx】 通常我们理解在窗口创建时发出消息WM_CREATE,但是在这个消息...
  • esinhee
  • esinhee
  • 2011年01月17日 15:34
  • 1675

eclipse中svn插件突然出现错误,不能连接svn了:Could not create the view: org.tigris.subversion.subclipse.ui.repositor

eclipse链接svn突然就出错不能使用的解决办法,报错信息:Could not create the view: org.tigris.subversion.subclipse.ui.reposi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么不能在WM_CREATE中绘制
举报原因:
原因补充:

(最多只允许输入30个字)