C++ MFC对话框初始化完成(即所有的控件已经创建完成)后的第一个函数是什么?

可能问题有点说不清楚,意思是:在所有控件都已经创建并初始化完成后。我想要为控件中添加数据,比如说,我要为列表框里面加一行,那么这个AddString()应该写在哪里?就是... 可能问题有点说不清楚,意思是:在所有控件都已经创建并初始化完成后。我想要为控件中添加数据,比如说,我要为列表框里面加一行,那么这个AddString()应该写在哪里?就是说当这个对话框展示给客户的那一瞬间,我要为列表框里面添加一行文本,那么应该在哪个消息响应里面? 展开
 我来答
zhccsd
推荐于2017-11-26 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:903万
展开全部
一种情况是加在OnInitDialog或者OnShowWindow里面,效果就是对话框显示出来的时候AddString()动作已经完成了。

另一种情况如果想在对话框显示出来以后延迟一定时间(不知道我有没有理解对)再添加文本,那就要略微复杂一点了,最简单的方法是用定时器,在OnInitDialog或者OnShowWindow里面SetTimer( 1 , 200 , NULL );
然后给对话框添加OnTimer消息,
OnTimer( UINT nIdEvent )
{
if(nIdEvent ==1 )
{
AddString()
KillTimer( 1 );
}
}
这样就实现了显示对话框以后再等200毫秒再添加了一行文本
追问
不好意思大神,可能是我没表达清楚,其实是这样,我的意思是逻辑上是先对话框出来,然后AddString(),但是这个肉眼是看不出来的,只是理论上是这样而已,我就是想问这种情况下AddString()应该添加在哪里?是你说的OnShowWindow()吗?
追答
我本来也是以为OnShowWindow可以,但是很遗憾,OnShowWindow发生在显示对话框之前的,也没有PostShowWindow这样的消息,我目前还没有找到这样一个合适的消息。

不过有一个不太完美的东西是OnPaint,确实是在对话框显示出来以后再调用里面的东西的,但是缺点是不光在显示对话框的时候,也会在移动对话框等等情况下调用里面的代码,所以根据实际需求,如果你的addstring确实只需要执行一次并且是在对话框显示的时候执行,那么可以这样做
在onpaint里添加代码
//bShowed初始为false
if( ! bShowed )
{
Addstring()
bShowed = true;
}
haiyangfenghuo
2014-10-06 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:785万
展开全部
在OnInitDialog函数里,这个函数在我们的dlg程序中是继承自CDialog并自动加载的,可以做一些界面的配置和初始化工作。请参考。
追问
OnInitDialog()只是对话框刚刚创建出来吧?控件什么的应该还没生成好吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ac75f22
2022-04-15
知道答主
回答量:6
采纳率:0%
帮助的人:2722
展开全部

在OnInitDialog虚函数里面最后return的前面写就可以了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等维他命水
2014-10-06 · 超过13用户采纳过TA的回答
知道答主
回答量:43
采纳率:100%
帮助的人:8.8万
展开全部
WM_CREATE消息,或者窗口的initnstance函数中添加即可
追问
WM_CREATE不是对话框刚刚创建出来而已吗?控件什么的应该还没生成好吧?
追答
那你可以去看其他控件是在什么地方写的,在它的后面继续写就OK,一般那些控件的加载就是在Initinstance函数这个里面加载的,先处理的是WM_CREATE消息,然后是Initinstance函数.如果我没有记错的话,你可以直接到对话框的Initinstancve函数中看里面的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_0x1F1E5E10
2014-10-06 · TA获得超过295个赞
知道小有建树答主
回答量:293
采纳率:50%
帮助的人:309万
展开全部
OnInitDialog 方法 即WM_INITDIALOG 消息的响应函数
追问
OnInitDialog()只是对话框刚刚创建出来吧?控件什么的应该还没生成好吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式