昨天去新华书店看的今天趁还记得就写下了. 窗口创建:首先定义一个CWnd对象,然后调用CWnd::Create,其实Create又会调用CreateEx,与之对应的API函数也是这样,在CreateEx调用AfxCtxCreateWindowEx之前会调用PreCreateWindow,这个时候偶CWnd对应的窗口的句柄还未被Windows分配,之后调用AfxCtxCreateWindowEx,在调用这个函数的过程中会发送WM_CREATE消息从而引发OnCreate函数调用注意调用OnCreate时CWnd中的m_hWnd已经有值了,在OnCreate中可以进行一些初始化以及创建字窗口之类的事情。至此窗口创建完毕。 窗口销毁:可以发送一个WM_CLOSE消息给指定窗口使其调用OnClose函数,此函数中会发送WM_DESTROY从而引发OnDestroy的调用,该函数又会引发最后一个消息WM_NCDESTROY的发送,OnNcDestroy即被调用,在OnNcDestroy的最后会调用PostNcDestroy,CWnd的PostNcDestroy为 void CWnd::PostNcDestroy() void CFrameWnd::PostNcDestroy() |
CWnd及窗口产生和销毁过程--发布日期:2007-8-25
最新推荐文章于 2017-12-03 12:34:00 发布