标题:有关VC++对话框编程问题的求助
取消只看楼主
fri1end
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-10-15
 问题点数:0 回复次数:0 
有关VC++对话框编程问题的求助

以前在大学学过C++和VB,现在打算学一点VC++。用的参考书是《Inside Visual C++》,翻译特差劲,好像是用的翻译软件直接翻的,文字半通不通的……汗……

前几章都算过去了,到第7章编写非模式对话框程序时出问题了……把原文抄上来:

5、使用ClassWizard添加一个OnInitDialog消息处理函数。
正如在一会儿将看到的那样,ClassWizard生成初始对话框控件的代码。然而,这个DDX(对话框数据交换)代码将不初始化列表框选择,所以必须重载CDialog::OnInitDialog函数。尽管OnInitDialog是一个虚拟成员函数,但是如果在派生的对话框类中映射WM_INITDIALOG消息,那么ClassWizard就生成原型和框架。要做到这一点,在Object IDs列表框中单击OnInitDialog,然后在Message列表框中单击WM_INITDIALOG消息。在MFC ClassWizard对话框中单击Edit Code按钮来编辑OnInitDialog函数。键入如下所示黑体的代码,代替已有的代码:

BOOL CEx06aDialog::OnInitDialog()
{
CListBox* pLB=(CListBox*)GetDlgItem(IDC_DEPT);
pLB->InsertString(-1,"Documentation");
pLB->InsertString(-1,"Accouting");
pLB->InsertString(-1,"Human Relations");
pLB->InsertString(-1,"Security");

return CDialog::OnInitDialog()
}

问题是:我在Object IDs对话框中根本找不到OnInitDialog对象,当然在Message对话框里也没有WM_INITDIALOG消息可选!按我的理解,ClassWizard的工作对象是当前工作区的类也就是CEx06aDialog,而它的基类是CDialog,那么ClassWizard当然不会把基类的对象给列出来了!但要自己手工编写原型和消息处理的话,我又没这个本事……这几天为这个问题快抓狂了,希望高手指教我该如何处理!

搜索更多相关主题的帖子: 对话框 ClassWizard OnInitDialog 函数 
2007-10-15 12:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177751-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.199869 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved