VC++中使用用户自定义消息及自定制窗口技巧
2008-11-13 19:29:43 来源:WEB开发网如果你不想让系统自动帮你把文档的文件名添加到标题栏中,需要在 CMainFram 的 PreCreateWindow 函数中删除 FWS_ADDTOTITLE 标志的窗口样式:
cs.style &= ~FWS_ADDTOTITLE ;
这样,程序运行起来,窗口标题就是 "MyProgram" 而没有后面的 "- 文档 1.txt" 这样的字符串了。
三、修改主框架窗口、子窗口及其显示风格
MFC 的 CWnd 类会在调用 CWnd::Create() 方法前先调用一下 PreCreateWindo() 方法,其参数是 CREATESTRUCT cs ,其中包括了创建窗口时各参数,例如大小,风格等等,我们可以通过重载这个成员函数来修改主窗口和子窗口的风格等属性。 PreCreateWindow 函数的原型为: Virtual BOOL PreCreateWindow ( CREATESTRUCT cs )。重载 PreCreateWindow 函数以后,则在创建窗口前可以修改 CREATESTRUCT 结构以替换缺省参数。 CREATESTRUCT 结构存放窗口特征,如窗口坐标、风格等,还可以定义新窗口风格。
若想修改主框架窗口,则可以在 MainFrm.cpp 的下列成员函数中加入待修改的内容。例如:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)
{
// 通过修改 CREATESTRUCT 结构来修改窗口类或风格
cs.cx=450;
cs.cy=300;
// 定义新窗口的高度、宽度
// 定义新窗口风格为去掉主窗口名及最大化等按钮
cs.style=ws-POPWINDO;
return CFrameWnd::PreCreateWindow(cs); }
定制子窗口的操作与上述主窗口相同,可在 ChildFrame.cpp 中加入以下内容:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)
{
// 通过修改 CREATESTRUCT 结构来修改窗口类或风格
return CMDIChildWnd::PreCreateWindow(cs);
}
更多精彩
赞助商链接