MFC窗口风格的设置

1、窗口风格一般可以通过在主窗口或文档窗口类的PreCreateWindow函数中修改CREATESTRUCT结构来设置,也可以调用CWnd类的成员函数ModifyStyle和ModifyStyleEx来更改。


2、窗口风格可以在以下几处进行修改:

(1)在MFC AppWizard中进行修改,即在创建工程的时候勾选相应的窗口风格,这里就不再累述了;

(2)修改CREATESTRUCT结构,在窗口被创建之前,系统会调用PreCreateWindow虚函数,用户可以重载此虚函数并在其中修改CREATESTRUCT结构来修改窗口的绝大多数风格;

(3)使用ModifyStyle和ModifyStyleEx函数修改,两个函数参数相同,第一个参数指定需要删除的风格,第二个参数指定需要添加的风格,最后一个(第三个)参数默认为0,表示默认不调用SetWindowPos。


3、具体示例代码:

(1)创建是指定风格就不多说了,从上述第二条开始:

譬如说单文档程序中,框架窗口默认的风格是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE组合,在虚函数中修改如下:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT CS)

{

// 新窗口不带有最大化按钮

cs.style &= ~WS_MAXIMIZEBOX;

// 将窗口的大小设为1/3屏幕,并居中

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;

// 调用基类的PreCreateWindow

return CFrameWnd::PreCreateWindow(cs);

}


(2)BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);




你可能感兴趣的:(MFC控件,MFC,MFC控件重绘,窗口风格)