如何设置对话框自动关闭? 我做了一个对话框,上面就是一张位图,希望对话框在程序一启动时,就弹出来.3秒后关闭.但是,就是不知道在哪里 可以设置 对话框 显示的时间??请各位大虾帮忙!是不是用到SetTimer , OnTimer 等等.... 用的话应该怎么用?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CDiaDlg::OnInitDialog(){ .... SetTimer(1, 1000, NULL) ; //第一个是事件编号,第2是事件, 第3个是回调函数.可以不要}在类视图里选类...然后重载ontime消息...里面判断闹钟编号,执行响应操作..void CDiaDlg::OnTimer(UINT nIDEvent) { if(nIDEvent==1) //就是自己编的那个// AfxMessageBox(""); CDialog::OnTimer(nIDEvent);}在这里加上退出代码 就可以了.. 从CDialog派生出一个对话框的类CSplashDlg,然后重装OnTimer函数,设置一个成员函数m_nSecond初始化它为0,然后在OnInitDialog中加入SetTimer(0,1000,NULL);然后再编写OnTimer函数void CSplashDlg::OnTimer(UINT nIDEvent){ ++m_nSecond; if(m_nSecond == 3) { KillTimer(0); this->OnOK(); } CSplashDlg::OnTimer(nIDEvent);}调用的时候就可以这样#include "SplashDlg.h"CSplashDlg* dlg = new CSplashDlg(this);if(!dlg) return;dlg->Create(IDD_MY_DIALOG,this);dlg->DoModal();delete dlg; 错了,这句CSplashDlg::OnTimer(nIDEvent);应该换成CDialog::OnTimer(nIDEvent); SetTimer( 1 , 3000 , NULL );响应 OnTimer 函数,关闭窗口即可。 如果怕麻烦,你也可以sleep(1000)执行三次啊,不过效果肯定没有settimer好 BOOL CDiaDlg::OnInitDialog(){ SetTimer(0, 3000, NULL) ; AfxMessageBox();}BOOL CDdDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_TIMER) { KillTimer(0);//关闭 } return CDialog::PreTranslateMessage(pMsg);} BEGIN_MESSAGE_MAP(CRunMDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_CLOSE() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_WM_TIMER() //这句别忘记了END_MESSAGE_MAP() 关于WritePrivateProfileString写文件的问题 格式化一个整形就这么难吗? 关于mcisendstring中put命令的用法 菜鸟问题请教? 请教关于Windows下ASCII码的问题。 GroupBox有什么用途?仅仅是摆设吗? !!!用VC做词法分析器!!! 请尽可能多地指教,木马病毒一般会调用哪些系统关键的API 腊味满,24岁,即将死于“UpdateResource",求救!!!!!! 与文档和视图有关的程序问题 如何放大,缩小,以及拖动一张位图 如何按照扫描行逐行提取位图数据?
{
.... SetTimer(1, 1000, NULL) ; //第一个是事件编号,第2是事件, 第3个是回调函数.可以不要}
在类视图里选类...然后重载ontime消息...里面判断
闹钟编号,执行响应操作..
void CDiaDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1) //就是自己编的那个//
AfxMessageBox("");
CDialog::OnTimer(nIDEvent);
}在这里加上退出代码 就可以了..
void CSplashDlg::OnTimer(UINT nIDEvent)
{
++m_nSecond;
if(m_nSecond == 3)
{
KillTimer(0);
this->OnOK();
}
CSplashDlg::OnTimer(nIDEvent);
}调用的时候就可以这样
#include "SplashDlg.h"CSplashDlg* dlg = new CSplashDlg(this);if(!dlg) return;
dlg->Create(IDD_MY_DIALOG,this);
dlg->DoModal();
delete dlg;
SetTimer( 1 , 3000 , NULL );响应 OnTimer 函数,关闭窗口即可。
{ SetTimer(0, 3000, NULL) ; AfxMessageBox();
}BOOL CDdDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_TIMER)
{
KillTimer(0);//关闭
}
return CDialog::PreTranslateMessage(pMsg);
}
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_CLOSE()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_TIMER() //这句别忘记了
END_MESSAGE_MAP()