MFC中 自定义消息

想在对话框显示出来后立即执行一段代码。

方法之一是自定义消息,即添加一个自定义的消息在消息队列中等待对话框初始化之后从消息队列中读取消息执行代码。

OnInitDialog返回之前post一个自定义的消息,在消息的相应函数里执行代码

利用类向导添加自定义消息WM_MY_PRIVATE,则生成如下消息响应函数,可以在自定义的消息响应函数里添加自己的代码:

LRESULT MyAppDlg::OnPrivateMessage(WPARAM,LPARAM)

{   

return0;

}

当然,在消息映射表里会发现增加了一项: 

ON_MESSAGE(WM_MY_PRIVATE,&CdummyDlg::OnPrivateMessage)

 

然后在CPP文件上面添加:

#define WM_MY_PRIVATE WM_USER + 1551

OnInitDialog()函数返回之前添加PostMessage(WM_MY_PRIVATE,如下:

BOOLMyAppDlg::OnInitDialog()

{    …………………………   

 // TODO: Add extra initialization here   

   PostMessage(WM_MY_PRIVATE);   

 returnTRUE;  // return TRUE  unless you set the focus to a control

}  

 

方法二是利用定时器,此方法没验证过。

OnInitDialog返回之前创建一个只报时一次的定时器,在OnTimer里执行代码

BOOLMyAppDlg::OnInitDialog()

{    …………………………  

  // TODO: Add extra initialization here   

   SetTimer(m_nTimerID, 100, NULL);   

 returnTRUE;  // return TRUE  unless you set the focus to a control

 voidMyAppDlg::OnTimer(UINT_PTRnIDEvent)

{  

  if(nIDEvent == m_nTimerID)  

  {        // 只执行一次,所以一报时就Kill掉了    

KillTimer(m_nTimerID);     

   m_nTimerID = 0;    

    AfxMessageBox(_T("Hello MFC"));    

    return;   

  }   

 CDialog::OnTimer(nIDEvent);

}

转载于:https://www.cnblogs.com/lxt287994374/p/3199456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值