如何修改vc工程的对话框类名

如何修改vc工程的对话框类名

ID:15784816

大小:41.95 KB

页数:3页

时间:2018-08-05

如何修改vc工程的对话框类名_第1页
如何修改vc工程的对话框类名_第2页
如何修改vc工程的对话框类名_第3页
资源描述:

《如何修改vc工程的对话框类名》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Cheny2012-02-18目的:Windows操作系统中有一个概念——窗口类。窗口类是抽象的,它可以有很多窗口实例,即HWND/CWnd。在一个程序中,你可以定制并注册一个窗口类,然后用它创建窗口,也可以直接用已经注册的窗口类创建我们的窗口。为了减轻我们的编程负担,也为了隐藏具体的实现,MFC已经为我们定制并注册了很多窗口类,我们可以直接使用它们。比如:对话框的窗口类为”#32770”,按钮的窗口类为”Button”,列表框的窗口类为”ListBox”等等。很多时候,我们需要用到FindWindow函数来查找已经存在的窗口,然后给它发送消息。或者

2、查询系统是否已经存在指定的窗口(进程),如果存在,我们就不再创建程序的新进程,而仅仅是激活它。FindWindow函数的声明为:HWNDFindWindow(LPCTSTRlpClassName,//类名LPCTSTRlpWindowName//窗口名);我们可以通过窗口类名(lpClassName)查找,也可以通过窗口标题文本(lpWindowName)查找,或者同时使用。窗口的标题文本并不总是十分可靠,很多时候,它是动态变化的。所以通过窗口类名来查找就很有必要了。方法:那么怎样把MFC提供给我们的对话框的默认窗口类名“#32770“改成我们程序特

3、有的呢?以下是更改步骤:1.打开工程的资源视图2.更改对话框资源的ClassName属性。有两种方法:a.第一种方法:在需要更改类名的对话框资源上右击,选择“属性”,打开属性对话框,可以看到有一个名为“ClassName”的属性,我们在其中输入一个自己定义的名称(如”MyPrivateClassName”)即可。但是,MFC默认设置这个属性选项是灰色不可用的,我们先要开启它。切换到资源视图,右击根节点(如”XxxXxx.rc”),选属性,去掉勾选“EnableMFCFeatures”项(如果是VS.Net,把”MFCModeproperty”项改为F

4、alse)。这样就可以修改对话框的ClassName属性了,假如为"MyClassName"。然后在BOOLCXXXXApp::InitInstance()方法的”WNDCLASSwc;”下方加上如下代码:3Cheny2012-02-18//////////////////////注册新类名/////////////////////////////获取窗口类信息。MFC默认的所有对话框的窗口类名为#32770::GetClassInfo(AfxGetInstanceHandle(),_T("#32770"),&wc);//改变窗口类名wc.lpszC

5、lassName=_T("MyClassName");//注册新窗口类,使程序能使用它AfxRegisterClass(&wc);///////////////////////////////////////////////////////////这段代码必须加上并且需要注册,要不然程序启动不了。b.另一种方法是:直接用文本编辑器打开资源文件,修改对话框定义代码,插入CLASS项,如:IDD_LIMITDLGINSTANCE_DIALOGDIALOGEX0,0,195,44STYLEDS_MODALFRAME

6、WS_POPUP

7、WS_VISIBLE

8、

9、WS_CAPTION

10、WS_SYSMENUEXSTYLEWS_EX_APPWINDOWCAPTION"LimitDlgInstance"CLASS"MyPrivateClassName"//Addyourclassnamehere!FONT8,"MSSansSerif"BEGINDEFPUSHBUTTON"OK",IDOK,138,7,50,14PUSHBUTTON"Cancel",IDCANCEL,138,23,50,14PUSHBUTTON"&Test!",IDC_BUTTON1,48,14,49,15END3.定制并注册新窗口类。在应用程序类的

11、InitInstance()函数中添加以下代码,以注册资源文件中用到的新窗口类:3Cheny2012-02-18WNDCLASSwc;//获取窗口类信息。MFC默认的所有对话框的窗口类名为#32770::GetClassInfo(AfxGetInstanceHandle(),_T("#32770"),&wc);//改变窗口类名wc.lpszClassName=_T("MyPrivateClassName");//注册新窗口类,使程序能使用它AfxRegisterClass(&wc);注意:在调用函数::GetClassInfo()时,请确保传入的第一

12、个参数HINSTANCE是包含你对话框资源所在的dll或exe的进程实例。请确保资源中指定的ClassNam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。