一、在创建窗口之前,通过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();
}
本文介绍了如何在CMainFrame中使用PreCreateWindow()函数设置窗口尺寸、位置、样式,以及在OnCreate()中进一步定制窗口属性,如去除最大化最小化和标题。同时,讨论了AfxRegisterWndClass()在设定窗口类型、图标和背景中的作用。
842

被折叠的 条评论
为什么被折叠?



