hur.cn - 华软网

 热门搜索

在文档视图结构中,CView的基类CWnd::PreCreateWindow到底完成什么工作?

  作者:未知    来源:网络    更新时间:2011/5/29
我发现,mfc自动生成代码当中:
C++">
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;

cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);

return TRUE;
}

我感觉这个函数主要的作用,就像是API编程的时候RegisterWndClass一样。
但是为什么函数的开始处要有一个CWnd::PreCreateWindow(cs)的调用呢? 这个调用似乎没有什么意义啊。

---华软 网友回答---
调用真正的窗口创建函数::CreateWindowEx之前,调用了CWnd::PreCreateWindow函数,并把参数cs以引用的方式传递了进去。而CWnd的PreCreateWindow函数也只是给cs.lpszClass赋值而已。

CChildView::PreCreateWindow(CREATESTRUCT& cs)主要作用是 改变窗口的风格
---华软网友回复---
引用 1 楼 taotaoma456 的回复:
调用真正的窗口创建函数::CreateWindowEx之前,调用了CWnd::PreCreateWindow函数,并把参数cs以引用的方式传递了进去。而CWnd的PreCreateWindow函数也只是给cs.lpszClass赋值而已。

CChildView::PreCreateWindow(CREATESTRUCT& cs)主要作用是 改变窗口的风格

你也可以理解为只不过是在错误检查的过程中,PreCreateWindow这个函数是为窗口初始化做准备,不调用都创建不了.      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。