用MFC创建一个应用程序,怎样让他再运行后,不显示界面,只在进程里面显示,即像运行的服务一样?我以前用过,好像把一些代码删掉,可不记得了,试了好久也没试出来

解决方案 »

  1.   

    创建的时候,选Win32程序,编码时不要创建窗口,不就行了。
      

  2.   

    在OnPaint() 下面if( nShow >0)
    {
             --nShow;//你就取个值为2吧。
             ShowWindow(SW_HIDE);//就隐藏了。
    }
    else
    {
    CDialog::OnPaint();
    }
      

  3.   

    在CWinApp::InitInstance()中去掉下面代码
    CSleepTestDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with Cancel
    }
      

  4.   

    改写为
    CSleepTestDlg *pDlg = new CSleepTestDlg;
    m_pMainWnd = pDlg;
    if(!pDlg->Create(CSleepTestDlg::IDD,NULL))
    {
       return FALSE;
    }
    //如果要显示就pDlg->ShowWindow(SW_SHOW);
    return TRUE;
    最后在ExitInstance()中delete m_pMainWnd;
      

  5.   

    既然你的程序没有界面,那么就不应该创建基于文档视图,因为如果这样里面的代码的99%都没有一点用。当然也不应该基于对话框。看下面#include <afxwin.h>
    int CALLBACK WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPTSTR    lpCmdLine,
                         int       nCmdShow)
    {
    //........................
    //........................
    //........................
    return 1;
    }
      

  6.   

    还要设定好环境(具体参见http://www.jjhou.com/article99-10.htm),然后在命令行里面运行cl -W3 -Gz -D_X86_ -DWIN32 beep.cpp /MACHINE:I386 /SUBSYSTEM:WINDOWS libc.lib kernel32.lib user32.lib gdi32.lib
      

  7.   

    1.ShowWindow(SW_HIDE);
    2.还可以用SetWindowPos()来设定大小,使其非常的小