我有一个项目,工程设置是not using mfc的,我想在里面用到MFC的一些东西该怎么办啊?我自己想到的办法是新建了一个项目,是MFC的,就是默认的对话框模板,然后我在FileView中选择添加工程到工作区,把那个工程的.dsp文件加了进来,然后我选了MFC工程是Set As Active Project,编译也没问题,可是运行起来就还是那个对话框。我想做到点一下MFC上的按钮,然后打开另一个工程的对话框,能实现吗?

解决方案 »

  1.   

    不知道LZ是否要用MFC的程序去启动非MFC的程序还是要反过来
    还是在一个dsw里放一个非MFC的工程和一个MFC的工程
    没做过,只好顶一个
      

  2.   

    另外一个工程不是not using mfc吗?哪里有什么对话框?
      

  3.   

    回dazedase:我想用MFC启动非MFC的程序。回iicup:
    不用MFC也可以有界面的,也有对话框的
    int AuthDialog::DoDialog()
    {
    return DialogBoxParam(pApp->m_instance, DIALOG_MAKEINTRESOURCE(IDD_AUTH_DIALOG), 
    NULL, (DLGPROC) DlgProc, (LONG) this);
    }BOOL CALLBACK AuthDialog::DlgProc(  HWND hwnd,  UINT uMsg,  
       WPARAM wParam, LPARAM lParam ) {

    AuthDialog *_this = (AuthDialog *) GetWindowLong(hwnd, GWL_USERDATA); switch (uMsg) { case WM_INITDIALOG:
    {
    SetWindowLong(hwnd, GWL_USERDATA, lParam);
    _this = (AuthDialog *) lParam;
    CentreWindow(hwnd);
    return TRUE;
    }
    case WM_COMMAND:
    switch (LOWORD(wParam)) {
    case IDOK:
    {
    UINT res= GetDlgItemText( hwnd,  IDC_PASSWD_EDIT,
    _this->m_passwd, 256);

    EndDialog(hwnd, TRUE); return TRUE;
    }
    case IDCANCEL:
    EndDialog(hwnd, FALSE);
    return TRUE;
    }
    break;
    case WM_DESTROY:
    EndDialog(hwnd, FALSE);
    return TRUE;
    }
    return 0;
    }
      

  4.   

    想用MFC启动非MFC的程序
    就直接把两个exe放在一起,其中一个直接ShellExecute另一个就可以了
      

  5.   

    我现在的做法就是2个EXE放一起,然后用winexec调用外部EXE文件,但是这样很不安全和方便,最好是能把其中一个工程作为项目添加到另一工程中去……
      

  6.   

    不用MFC也可以有界面的,也有对话框的
    int AuthDialog::DoDialog()
    {
    return DialogBoxParam(pApp->m_instance, DIALOG_MAKEINTRESOURCE(IDD_AUTH_DIALOG), 
    NULL, (DLGPROC) DlgProc, (LONG) this);
    }BOOL CALLBACK AuthDialog::DlgProc(  HWND hwnd,  UINT uMsg,  
       WPARAM wParam, LPARAM lParam ) {这里直接用SDK API编程的吧,那为什么不直接在SDK API 或 MFC其中一种中搞几个对话框呢?
      

  7.   

    因为用API的那个同时跑了,我只会MFC,API的根本看不懂,他的代码我改不了……所以想把2个工程整合的办法……不知道可不可行
      

  8.   

    WinExec
    ShellExecute
    CreateProcess
    等等都可以办到呀!