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一项。。难道只能用鼠标去拉着看左下角的坐标和大小吗??

vs2010环境下,MFC如何修改窗体名字?

VS2010/MFC编程(对话框:模态对话框及其弹出过程)

对话框窗口中的消息框(VS 2012,MFC C++)

使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?

VS2015 VS2017 MFC输出日志到控制台窗口