


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cheny 2012-02-18目的:Windows操作系统中有一个概念窗口类。窗口类是抽象的,它可以有很多窗口实例,即HWND/CWnd。在一个程序中,你可以定制并注册一个窗口类,然后用它创建窗口,也可以直接用已经注册的窗口类创建我们的窗口。为了减轻我们的编程负担,也为了隐藏具体的实现,MFC已经为我们定制并注册了很多窗口类,我们可以直接使用它们。比如:对话框的窗口类为”#32770”,按钮的窗口类为”Button”,列表框的窗口类为”ListBox”等等。很多时候,我们需要用到 FindWindow 函数来查找已经存在的窗口,然后给它发送消息。或者查询系统是否已经存在指定的窗口(进程),如果存在,我们就不再创建程序的新进程,而仅仅是激活它。FindWindow函数的声明为:HWND FindWindow(LPCTSTR lpClassName, / 类名LPCTSTR lpWindowName / 窗口名);我们可以通过窗口类名(lpClassName)查找,也可以通过窗口标题文本(lpWindowName)查找,或者同时使用。窗口的标题文本并不总是十分可靠,很多时候,它是动态变化的。所以通过窗口类名来查找就很有必要了。方法:那么怎样把MFC提供给我们的对话框的默认窗口类名“#32770“改成我们程序特有的呢?以下是更改步骤:1. 打开工程的资源视图2. 更改对话框资源的ClassName属性。有两种方法:a. 第一种方法:在需要更改类名的对话框资源上右击,选择“属性”,打开属性对话框,可以看到有一个名为“Class Name”的属性,我们在其中输入一个自己定义的名称(如”MyPrivateClassName”)即可。但是,MFC默认设置这个属性选项是灰色不可用的,我们先要开启它。切换到资源视图,右击根节点(如”XxxXxx.rc”),选属性,去掉勾选“Enable MFC Features”项(如果是VS.Net,把 ”MFC Mode property” 项改为False)。这样就可以修改对话框的Class Name属性了,假如为MyClassName。然后在 BOOL CXXXXApp:InitInstance() 方法的 ”WNDCLASS wc;” 下方加上如下代码:/注册新类名/ 获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770 :GetClassInfo(AfxGetInstanceHandle(), _T(#32770), &wc); / 改变窗口类名 wc.lpszClassName = _T(MyClassName); / 注册新窗口类,使程序能使用它 AfxRegisterClass(&wc);/这段代码必须加上并且需要注册,要不然程序启动不了。b. 另一种方法是:直接用文本编辑器打开资源文件,修改对话框定义代码,插入CLASS项,如:IDD_LIMITDLGINSTANCE_DIALOG DIALOGEX 0, 0, 195, 44 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION LimitDlgInstance CLASS MyPrivateClassName / Add your class name here! FONT 8, MS Sans Serif BEGIN DEFPUSHBUTTON OK,IDOK,138,7,50,14 PUSHBUTTON Cancel,IDCANCEL,138,23,50,14 PUSHBUTTON &Test!,IDC_BUTTON1,48,14,49,15 END3. 定制并注册新窗口类。在应用程序类的InitInstance()函数中添加以下代码,以注册资源文件中用到的新窗口类:WNDCLASS wc; / 获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770 :GetClassInfo(AfxGetInstanceHandle(), _T(#32770), &wc); / 改变窗口类名wc.lpszClassName = _T(MyPrivateClassName); / 注册新窗口类,使程序能使用它AfxRegisterClass(&wc);注意:在调用函数 :GetClassInfo() 时,请确保传入的第一个参数HINSTANCE是包含你对话框资源所在的d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开吊笼考试题及答案
- 玻璃制品机械成型工主管竞选考核试卷及答案
- 酒店保安考试题及答案
- 矿井制冷降温工转正考核试卷及答案
- 课件无响应问题解决
- 自行车与电动自行车装配工岗位操作技能考核试卷及答案
- 金山焊工考试题及答案
- 保险公估人工艺创新考核试卷及答案
- 医用消毒、低温设备组装调试工专项考核试卷及答案
- 教师调动考试题及答案
- 设施赔偿协议书范本
- 2025-2030中国镁合金行业市场深度调研及发展趋势与投资前景预测研究报告
- DB50∕T 632-2015 火灾高危单位消防安全评估规程
- 2025年上半年湖南湘西州龙山县事业单位招聘工作人员41人易考易错模拟试题(共500题)试卷后附参考答案
- 精神科进修汇报:专业护理实践与挑战
- 加油站员工绩效考核制度或加油站员工激励约束办法
- 食堂验货标准培训
- 电动叉车安全操作培训
- 浆砌石挡墙拆除施工技术方案
- 人教版九年级化学上册教学工作计划(及进度表)
- T-SEEPLA 09-2024 四川省功能区声环境质量监测站(点)布设技术规范
评论
0/150
提交评论