VS2015 MFC 修改应用程窗口大小 标题
Posted zhou8744
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2015 MFC 修改应用程窗口大小 标题相关的知识,希望对你有一定的参考价值。
******窗口创建之前修改MFC窗口大小*************************
一 创建单文档程序,CMainFrame::PreCreateWindow(CREATESTRUCT&cs)。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 cs.cx = 800; cs.cy = 600; cs.lpszName = L"测试属性页表单程序"; //单这个还不能改变它的标题,因为单文档默认模式为:WS_OVERLAPPEDWINDOW|FWS_ADDTOTITLE的联合 //FWS_ADDTOTITLE 它是MFC类型的样式,用来将文档的标题添加到应用程序的标题上 //它的作用就是用来通知程序把文档标题作为应用程序的标题 //对FWS_ADDTOTITLE取反(~) 再进行与(&)操作即可去除这个样式 cs.style &= ~FWS_ADDTOTITLE; //或者直接cs.style=OVERLAPPEDWINDOW; 效果等同 return TRUE; }
在PreCreateWindow()设计一个窗体类,然后注册,cs的lpClassName=新注册的窗口类的类名,但是这样只是修改了框架窗口的,如果要改变光标,背景之类的,则需要修改覆盖在CMainFrame上的View类。
由于新创建的类已经注册了,因此,在View类的PreCrateWindow中,只需要把类的名字传递给View::PreCreateWindow(CREATESTRUCT &cs)中的cs。设置cs。lpClassName为注册过的窗口类。
新注册的窗口类需要hInstance实例可以通过:AfxGetInstanceHandle(); 缺省的窗口过程函数 DefWindowProc。如果要修改应用程序图标,通过这个方法,显得大材小用,因此使用AfxRegisterWndClass()
******创建之后修改*************************************************************
//用于修改一个指定窗口的属性 LONG SetWindowLong( HWND hWnd //窗口句柄 ,int nIndex //GWL_STYLE ,LONG dwNewLong //新的窗口类型 ) 在OnCreate()函数中进行修改
SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE)&~WS_MAXIMIZEBOX);//取消最大化框
在View类中增加OnCreate
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(BLACK_BRUSH)); //修改背景为黑色 这个函数用于在窗口创建之后,在程序中改变图标
SetClassLong(m_hWnd, GCL_HCURSOR, (LONG)LoadCursor(NULL,IDC_HELP)); //修改光标带问号
以上是关于VS2015 MFC 修改应用程窗口大小 标题的主要内容,如果未能解决你的问题,请参考以下文章
VS C++ MFC 控件怎么修改大小?属性里 没有size一项。。难道只能用鼠标去拉着看左下角的坐标和大小吗??