MFC原创教程:5.0 Style 窗口风格
VC++/MFC Window编程原创教程目录
1:窗口创建之前改变外观
修改大小、标题,代码添加在: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.cx=800; //修改宽度
cs.cy=800;
cs.style &= ~FWS_ADDTOTITLE; //取反减去“或”运算;默认cs.style=WS_OVERLAPPEDWINDOW || FWS_ADDTOTITLE(增加文档标题到窗口标题)
cs.lpszName="窗口标题修改";
return TRUE;
}
2:窗口创建之后改变外观。
代码添加在CMainFrame::OnCreate (该函数先调用了基类,所以创建了窗口了)
//SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE) & ~WS_MAXIMIZEBOX);
//改变窗口属性。参数(窗口句柄,设一新的风格,替换的值:获取旧分割“减去”窗口最大化属性)
3:使用窗口类修改。
代码添加在MainFrame::PreCreateWindow(把之前写的代码注释了吧)
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
WNDCLASS wndcls; //设计窗口类
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
//额外空间暂不需要http://topic.csdn.net/u/20080304/15/c9c072d3-a996-4f20-90cd-817bc13cc8d7.html
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); //背景颜色
wndcls.hCursor=LoadCursor(NULL,IDC_HELP); //光标。NULL表选用标准。
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=AfxGetInstanceHandle(); //获取应用程序的句柄
wndcls.lpfnWndProc=::DefWindowProc; //窗口过程。::表调用全局API函数。
wndcls.lpszClassName="类名字";
wndcls.lpszMenuName=NULL; //单文档EXE已经默认加载菜单了,此处可为NULL。
wndcls.style=CS_HREDRAW | CS_VREDRAW; //窗口类类型。水平重画 | 垂直重画
RegisterClass(&wndcls); //注册窗口类
return TRUE;
}
//因为VIEW覆盖在框架类上,所以使用窗口类要在VIEW中使用。
BOOL CStyleView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.lpszClass="类名字";
return CView::PreCreateWindow(cs);
}
第3步的代码其实只要用一行代码就能代替, 代码放在:CSt
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
