代码改变世界

转:vc6以上如何给MFC对话框添加OnInitDialog函数

  youxin  阅读(633)  评论(0编辑  收藏  举报

Don't feel stupid, it took me forever to figure this out when I first moved from VC6 to VS2008!

Anyway, and also for my own reference, here are the complete steps for adding a dialog box and overriding the OnInitDialog method:

  1. Select Resource View and expand the .rc file.
  2. Right-click the Dialog entry in the tree view and select Insert Dialog.
  3. Select the Properties window. (Note: If you don't see this window, select the View > Other Windows > Properties Window menu item.)
  4. In the Properties window, set the ID for the dialog, e.g., IDD_MYDIALOG.
  5. Right click the dialog in the resource editor and select Add Class. Note: if you have IE8 installed, this may produce an Internet Explorer Script Error. See this blog post for details on how to correct this.
  6. In the MFC Class Wizard dialog box, enter the class name, e.g., CMyDialog, select CDialog as the base class, then press Finish. This will create files named MyDialog.cpp and MyDialog.h and add them to your project.

To override the OnInitDialog method in the CMyDialog class:

  1. Open the file MyDialog.h.
  2. Select the Properties window.
  3. Place the cursor on the line that reads class CMyDialog : public CDialog. (The top of the Properties window should show "CMyDialog VCCodeClass" - this is important, because theProperties window is highly context sensitive, and you get different options depending on the location of the cursor in the editor.)
  4. Click the Overrides icon in the Properties window.
  5. Scroll down the properties window to find OnInitDialog.
  6. Click the down arrow against this entry and select <Add> OnInitDialog. This should create yourCMyDialog::OnInitDialog function.

I hope this helps!

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示