PreCreateWindow作用
来源:互联网 发布:湖南工程造价软件 编辑:程序博客网 时间:2024/04/30 01:14
在现有应用程序中更改样式
如果是正在现有应用程序中更改窗口属性,则遵循本文其余部分的说明。
若要更改框架应用程序(用应用程序向导创建的)所使用的默认窗口属性,请重写窗口的 PreCreateWindow 虚拟成员函数。PreCreateWindow 允许应用程序访问通常由 CDocTemplate 类内部管理的创建进程。框架在即将创建窗口前调用 PreCreateWindow。通过修改传递给 PreCreateWindow 的结构 CREATESTRUCT,应用程序可以更改用于创建窗口的属性。例如,为了确保窗口不使用标题,使用以下按位操作。
// cs has been declared as CREATESTRUCT& cs; cs.style &= ~WS_CAPTION;
CTRLBARS 示例应用程序论证了这项更改窗口属性的技术。根据应用程序在 PreCreateWindow 中的更改,可能有必要调用此函数的基类实现。
以下讨论适用于 SDI 情况和 MDI 情况。
SDI 情况
在单文档界面 (SDI) 应用程序中,框架中的默认窗口样式是
WS_OVERLAPPEDWINDOW 和 FWS_ADDTOTITLE 样式的组合。
FWS_ADDTOTITLE 是 MFC 特定的样式,指示框架将文档标题添加到窗口标题。若要在 SDI 应用程序中更改窗口属性,请在从 CFrameWnd(应用程序向导给 CMainFrame 起的名称)派生的类中重写 PreCreateWindow 函数。例如:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
// Create a window without min/max buttons or sizable border cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3; cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3; cs.y = ((cs.cy * 3) - cs.cy) / 2; cs.x = ((cs.cx * 3) - cs.cx) / 2;
// Call the base-class version
return CFrameWnd::PreCreateWindow(cs); }
此代码创建一个没有“最小化”按钮和“最大化”按钮,也没有大小可调边框的主框架窗口。此窗口最初在屏幕上居中。
MDI 情况
更改多文档界面 (MDI) 应用程序中的子窗口样式所需的工作多一些。默认情况下,用应用程序向导创建的 MDI 应用程序使用 MFC 中定义的默认 CMDIChildWnd 类。若要更改 MDI 子窗口的窗口样式,必须从 CMDIChildWnd 派生一个新类,并用对新类的引用
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
替换项目中所有对 CMDIChildWnd 的引用。应用程序中仅有的对 CMDIChildWnd 的引用很可能位于应用程序的 InitInstance 成员函数中。
在 MDI 应用程序中使用的默认窗口样式是 WS_CHILD、WS_OVERLAPPEDWINDOW 和 FWS_ADDTOTITLE 样式的组合。若要更改 MDI 应用程序子窗口的窗口属性,请在从 CMDIChildWnd 派生的类中重写 PreCreateWindow 函数。例如:
BOOL CMyChildWnd::PreCreateWindow(CREATESTRUCT& cs) {
// Create a child window without the maximize button cs.style &= ~WS_MAXIMIZEBOX;
// Call the base-class version
return CMDIChildWnd::PreCreateWindow(cs); }此代码创建没有“最大化”按钮的 MDI 子窗口。
如果是正在现有应用程序中更改窗口属性,则遵循本文其余部分的说明。
若要更改框架应用程序(用应用程序向导创建的)所使用的默认窗口属性,请重写窗口的 PreCreateWindow 虚拟成员函数。PreCreateWindow 允许应用程序访问通常由 CDocTemplate 类内部管理的创建进程。框架在即将创建窗口前调用 PreCreateWindow。通过修改传递给 PreCreateWindow 的结构 CREATESTRUCT,应用程序可以更改用于创建窗口的属性。例如,为了确保窗口不使用标题,使用以下按位操作。
// cs has been declared as CREATESTRUCT& cs; cs.style &= ~WS_CAPTION;
CTRLBARS 示例应用程序论证了这项更改窗口属性的技术。根据应用程序在 PreCreateWindow 中的更改,可能有必要调用此函数的基类实现。
以下讨论适用于 SDI 情况和 MDI 情况。
SDI 情况
在单文档界面 (SDI) 应用程序中,框架中的默认窗口样式是
WS_OVERLAPPEDWINDOW 和 FWS_ADDTOTITLE 样式的组合。
FWS_ADDTOTITLE 是 MFC 特定的样式,指示框架将文档标题添加到窗口标题。若要在 SDI 应用程序中更改窗口属性,请在从 CFrameWnd(应用程序向导给 CMainFrame 起的名称)派生的类中重写 PreCreateWindow 函数。例如:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
// Create a window without min/max buttons or sizable border cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3; cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3; cs.y = ((cs.cy * 3) - cs.cy) / 2; cs.x = ((cs.cx * 3) - cs.cx) / 2;
// Call the base-class version
return CFrameWnd::PreCreateWindow(cs); }
此代码创建一个没有“最小化”按钮和“最大化”按钮,也没有大小可调边框的主框架窗口。此窗口最初在屏幕上居中。
MDI 情况
更改多文档界面 (MDI) 应用程序中的子窗口样式所需的工作多一些。默认情况下,用应用程序向导创建的 MDI 应用程序使用 MFC 中定义的默认 CMDIChildWnd 类。若要更改 MDI 子窗口的窗口样式,必须从 CMDIChildWnd 派生一个新类,并用对新类的引用
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
替换项目中所有对 CMDIChildWnd 的引用。应用程序中仅有的对 CMDIChildWnd 的引用很可能位于应用程序的 InitInstance 成员函数中。
在 MDI 应用程序中使用的默认窗口样式是 WS_CHILD、WS_OVERLAPPEDWINDOW 和 FWS_ADDTOTITLE 样式的组合。若要更改 MDI 应用程序子窗口的窗口属性,请在从 CMDIChildWnd 派生的类中重写 PreCreateWindow 函数。例如:
BOOL CMyChildWnd::PreCreateWindow(CREATESTRUCT& cs) {
// Create a child window without the maximize button cs.style &= ~WS_MAXIMIZEBOX;
// Call the base-class version
return CMDIChildWnd::PreCreateWindow(cs); }此代码创建没有“最大化”按钮的 MDI 子窗口。
简单的说,就是在创建一个窗口之前,会调用这个函数,你可以通过修改参数CREATESTRUCT结构来事先修改要创建的这个窗口的一些特征。
转载网址:http://wenku.baidu.com/link?url=qNkQ-V-HblY97bkQfqnhxbvvGOEZ4yaj9HzAWL2LzhKK8FPZIpa0R49AdO-s7igi6ri2j-yGNqLQzquCnhicmDUQIqdWUzSsMabt5-zYqUK
1 0
- PreCreateWindow作用
- PreCreateWindow
- precreatewindow
- PreCreateWindow
- PreCreateWindow
- PreCreateWindow
- PreCreateWindow
- precreatewindow & presubclasswindow
- PreCreateWindow函数复习总结
- OnCreate PreCreateWindow PreSubclassWindow
- OnCreate PreCreateWindow PreSubclassWindow !
- OnCreate PreCreateWindow PreSubclassWindow
- OnCreate PreCreateWindow PreSubclassWindow
- PreCreateWindow、PreSubclassWindow、SubclassWindow
- PreCreateWindow两次调用
- OnCreate PreCreateWindow PreSubclassWindow
- PreCreateWindow函数, PreSubClassWindow函数
- CFrameWnd::ActivateFrame()和PreCreateWindow()
- js根据不一样的移动设备调整到相应的页面
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别
- address of local variable 'pbuf' returned
- 116. Populating Next Right Pointers in Each Node
- 电脑维修
- PreCreateWindow作用
- spring的BeanFactory原理模拟
- 如何使开发板和主机共享文件
- sql事务(Transaction)用法介绍及回滚实例
- Mysql之查询基础select
- APUE------进程控制
- tomcat6的编译和导入myeclipse
- 无法识别的属性“targetFramework”解决办法
- 我的第一篇CSDN博客文章