修改应用程序标题、图标、光标、背景

本文介绍了如何在CMainFrame中使用PreCreateWindow()函数设置窗口尺寸、位置、样式,以及在OnCreate()中进一步定制窗口属性,如去除最大化最小化和标题。同时,讨论了AfxRegisterWndClass()在设定窗口类型、图标和背景中的作用。

一、在创建窗口之前,通过PreCreateWindow()修改。

如下:指定窗口的大小、位置、标题、固定大小、最大化最小化等。

BOOL   CMainFrame::PreCreateWindow(CREATESTRUCT&   cs)
{
        int   xSize = ::GetSystemMetrics(SM_CXSCREEN);
        int   ySize = ::GetSystemMetrics(SM_CYSCREEN);
        cs.cx = xSize * 9 / 10;
        cs.cy = ySize * 9 / 10; //指定窗口尺寸
        cs.x = (xSize - cs.cx) / 2;
        cs.y = (ySize - cs.cy) / 2;//指定窗口位置坐标

        cs.style   &=~FWS_ADDTOTITLE ;   //支持指定自定义标题

        cs.style   &=~(WS_MAXIMIZEBOX|WS_MINIMIZEBOX);   //去掉最大化最小化

        cs.style   &=~WS_THICKFRAME;   //固定窗口大小,不支持拖动尺寸

        cs.style &= ~WS_CAPTION;  //不显示标题

        
        return   CMDIFrameWnd::PreCreateWindow(cs);
}

其中标题、图标在CMainFrame中修改,背景、鼠标在CView中修改。

AfxRegisterWndClass();  //用于设定窗口的类型、光标、背景、图标

二、在创建窗口之后显示窗口之前,在OnCreate()中修改。

在OnCreate()中修改,如去掉最大化最小化、去掉标题等。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

        //通过SetWindowLong/GetWindowLong修改

        SetWindowLong();

        //通过SetClassLong/GetClassLong修改

        SetClassLong();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值