在主界面显示之前加了一个log,运行程序的时候,先出来log,但是必须再点一下鼠标才能显示主界面,能不能设置个时间显示之类的,过几秒自动出现主界面?????

解决方案 »

  1.   

    在你调用log之后加个定时器SetTimer()应该可以
    SetTimer三个参数 第一个是ID,第二个是时间 单位毫秒,第三个是函数
    只有一个定时器ID可以NULL,函数一般NULL然后可以用响应WM_TIMER消息
    KillTimer可以结束定时器
      

  2.   

    可以啊,这东西偶玩过。
    1.在InitInstance()函数中处理,把你的对话框Dialog DoModal()在
    CMainFrame* pMainFrame = new CMainFrame;之前2.Dialog里面的内容初始化的时候SetTimer设置你需要Log显示的时间,另外再回调OnTimer里面加上
    CDialog::OnOK();(时间一到就关闭log),别忘记吧Dialog的样式标题全去掉,就充满你的log就可以了
      

  3.   

    OnTimer里面别忘记KillTimer刚才自己的SetTimer,因为只要实现1次就可以了
      

  4.   

    这不是程序启动画面吗?
    使用SplashScreen控件
    见:http://blog.csdn.net/agoago_2009/article/details/6725684
      

  5.   

    你说的那个是logo吧,启动画面,不是log吧
      

  6.   

    呵呵,不好意思,写的急,删掉了,是logo,就是启动画面。
      

  7.   

    也可以创建一个线程来处理logo的显示
      

  8.   

    用单独线程处理loginsplash最合适,稍微复杂了些
      

  9.   

    显示前加个Timer就可以了。
    另外弹出的对话框也可以做这么处理。给Logo发消息。#ifdef Debug
    void CALLBACK MyTimeProc(
     HWND hwnd, 
     UINT uMsg, 
     UINT idEvent, 
     DWORD dwTime )
    {

    HANDLE hwd=FindWindowEx(NULL,NULL,NULL,"tip");
    if(hwd)
    ::SendMessage((HWND)hwd,WM_CLOSE,NULL,NULL);
    }#define TIP(x) \
    iTimer=::SetTimer(NULL,0,1*1000,&MyTimeProc);::MessageBox( NULL, x, "tip", 0 );\
    if(iTimer) {bTimerClose=false;bTimerClose=::KillTimer(NULL,iTimer);}
      

  10.   

    那么使用SplashScreen控件吧,很简单
    见:http://blog.csdn.net/agoago_2009/article/details/6725684
      

  11.   

    那么使用SplashScreen控件吧,很简单
    见:http://blog.csdn.net/agoago_2009/article/details/6725684