WEB开发网
开发学院软件开发VC 定制个性化的对话框窗口类 阅读

定制个性化的对话框窗口类

 2010-07-20 20:45:54 来源:WEB开发网   
核心提示:第一种:1、打开这个对话框工程文件,打开 ResourceView,定制个性化的对话框窗口类(2),2、打开 Resource Editor,右击对话框,注册唯一的窗口类是非常有用的,或作一个进行程序监控的 时候,选择选项 Properties,在对话框的属性项中

第一种:

1、打开这个对话框工程文件,打开 ResourceView。

2、打开 Resource Editor,右击对话框,选择选项 Properties,在对话框的属性项中 ,最下角是一个类名的输入项, 但是这一个选项是禁止的, 你无法在些输入类名, 因为你在这里是选择了 MFC 类库的

支持。为了使这个选项可以输入。如图所示,在Resource View 的最顶项选择右键->属性,就会弹出

一个资源文件属性对话框,把其中的 Enable MFC Features 的项设为禁止, 则对话框的类名就可以在在资源编辑器中设定了。(在Visual C++ 。NET,设置 MFC Mode property 属性为 FALSE)

第二种可供选择的方法就是修改 RC 文件和源代码! 在 CWinApp 的派生类的 Initinstance 函数中进行修改:

// 在派生类的 InitIntace() 中
  BOOL CLimitDlgInstanceApp::InitInstance()
  {
    WNDCLASS wc;
    // Get the info for this class。
    // #32770 is the default class name for dialogs boxes。
    ::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wc);
    // Change the name of the class。
    wc。lpszClassName = "MyPrivateClassName";
    // Register this class so that MFC can use it。
    AfxRegisterClass(&wc);
    // ......
  }

其中 ::GetClassInfo 保证了即使你的资源文件在不同的 Dll 中也能正确得到 HINSTANCE 跟着就是要修改资源文件了,用文本编辑器打开 rc 文件 ,加上" ClASS 类名 "如下图所示: 

注意,如果你 rc 文件中的类名与 Initinstance 中的类名不一致,程序不会运行,这是非常重要的。切记。

结束语:

这只是一个小技巧,希望对于大家的开发有所帮助,例如在开发基于对话框的程序中,使应用程序只有一个运行实例,注册唯一的窗口类是非常有用的。或作一个进行程序监控的 时候,可以进行快速定位。

上一页  1 2 

Tags:定制 个性化 对话框

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接