hur.cn - 华软网

 热门搜索

怎么重写OnInitDialog

  作者:未知    来源:网络    更新时间:2010/3/31
我想要重写一个Dialog的函数OnInitDialog().使用的是VS2008,在网上找了很多方法,说是在Class View选择类,然后查看属性窗口,有得选择重写,但为什么我老是找不到呢?请各位帮帮忙啊。。。。




在网上看到应该是这样的
[img=http://static7.photo.sina.com.cn/orignal/61eccf0ex77b6767b3796&690][/img]
---华软 网友回答---
类视图,找到CXXXDlg对话框类,右键属性,找到属性视图(一般在右下角),点击“重写”选项卡,找到OnInitDialog,添加。
---华软网友回复---
就是你说的那样啊。

选择属性,然后在属性窗口中点击消息,找到wm_initdialog消息,添加就好了。IDE要多熟悉,每个窗口、选项都点出来看看到底是干什么的。
---华软网友回复---
右键对话框,属性,在右边有个属性视图,有个重写的。
---华软网友回复---
没有就自己在头文件加

virtual BOOL OnInitDialog();

在cpp文件重写就行了
---华软网友回复---

---华软网友回复---
.h文件中要这样写 

C++">
virtual BOOL OnInitDialog();


.cpp文件

C++">
BOOL CtestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//add some code for you need
return true;

还有从图上看,你的OnInitDialog()声明不对,因为正常的时候,在class  view 看到的这个函数前面有个锁
你的没有
---华软网友回复---
引用 6 楼 lfs09 的回复:
.h文件中要这样写


C/C++ code

    virtual BOOL OnInitDialog();



.cpp文件


C/C++ code

BOOL CtestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//add some code for you need
return true;

……


按照你的方法手动添加,但是Debug发现程序没有跑到OnInitDialog中来
---华软网友回复---
VS2005,2008与VC6有很多东西不同了,我开始时也很不习惯.
ClassWizard没有了,加关联变量,加消息响应那些都跟以前不一样了,多注意一下右键菜单与最上面的总菜单,慢慢就会习惯的,习惯了之后,会发现其实是更方便的,跟WinForm那个框架的操作一样的了.
---华软网友回复---
virtual BOOL OnInitDialog();

BOOL CXXXDlg::OnInitDialg()
{
 CDialog::OnInitDialog();
 ...
return TRUE;
}
---华软网友回复---
楼上几位大哥,为什么 我在H和CPP文件都加上代码,但是程序没会跑到OnInitDialog中来啊
---华软网友回复---
你确认下是否将代码加到你的对话框类里面了!!!

---华软网友回复---
我的问和楼主一样。代码加上了,也确认多次没有错,但是调试时代码一直跑不到OnInitDialog里,一直找不到原因,为什么?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。