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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部