正在阅读:窗口类的诞生(注册自己的窗口类)2窗口类的诞生(注册自己的窗口类)2

2004-03-08 14:55 出处:CSDN 作者:jxhnuaa 责任编辑:linjixiong


  BOOL CWnd::CreateEx(DWORD dwExStyle, LPCSTSTR lpszClassName,

  …… LPVOID lpParam)

  {
 
  CREATESTRUCT cs;

  cs.dwExStyle = dwExStyle;

  … …

  cs.lpCreateParams = lpParam;

  PreCreateWindow(cs);

  AfxHookWindowCreate(this);

  HWND hWnd=::CreateWindowEx(cs.dwStyle,cs.lpszClass,…,cs.lpCreateParams);

  ……

  }

  啊,一看到CreateWindowEx,亲切感又来了,这不是和SDK中的CreateWindow一样嘛,是创建窗口!既然这样,那么注册窗口肯定在该函数之前,会是谁呢?如果你做过一点MFC程序,你就会对将眼光停留PreCreateWindow上。对!就是它了。

  PreCreateWindow函数是CWnd类的一个虚拟函数,提供程序设置待创建窗口的属性(包括窗口类),这样继承于CWnd的类都可以按照自己的要求在PreCreateWindow中设置自己的属性了,而且我们看到MFC也是这样做的:

  BOOL CWnd::PreCreateWindow(CREATESTRUCT &cs)

  {

  if(cs.lpszClass = = NULL)




察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品