MFC的 PreCreateWindow的问题

2025-05-11 18:07:40
推荐回答(3个)
回答1:

同LS所言,这个是窗口类的虚函数,你可以自己重写这个函数,来自定义一些窗口特性。
不是有个CREATESTRUCT&的引用嘛,这是MSDN里一个例子:
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// Create a window without min/max buttons or sizable border
cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

// Size the window to 1/3 screen size and center it
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;

return CMDIChildWnd::PreCreateWindow(cs);
}

CREATESTRUCT是一个结构,可以根据自己的需要修改这个结构的成员,以此改变新建的窗口的外观,具体参考:
http://msdn.microsoft.com/zh-cn/library/9930zz74(VS.80).aspx

回答2:

PreCreateWindow是窗口类的虚函数,可以在自己的窗口类中重载此函数,用以改变窗口的样式,对mfc来说,这个函数是隐式调用的,不用自己显式调用。只要窗口被创建,则这个函数已经自动调用了,你只需要在需要的时候把这个函数重写一下就可以了

回答3:

说别人不懂MFC,,你会还出来问,人家好心帮你回答,还这种腔调,,真2