如题,求助

解决方案 »

  1.   

    太简单的问题了吧随便找本书看就行,如:
    VC 技术内幕 
    window programing 等。
      

  2.   

    使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法: CYourView::OnOpenDlg()
    {
    CYourDlg dlg;
    int iRet=dlg.DoModal();
    }CDialog::DoModal()的返回值为IDOK,IDCANCEL。表明操作者在对话框上选择“确认”或是“取消”。由于在对话框销毁前DoModal不会返回,所以可以使用局部变量来引用对象。在退出函数体后对象同时也会被销毁。而对于无模式对话框则不能这样使用无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用
    BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用 
    BOOL CDialog::ShowWindow( SW_SHOW);进行显示,否则无模式对话框将是不可见的。相关代码如下: void CYourView::OnOpenDlg(void)
    {
    /*假设IDD_TEST_DLG为已经定义的对话框资源的ID号*/
    CTestDlg *dlg=new CTestDlg;
    dlg->Create(IDD_TEST_DLG,NULL);
    dlg->ShowWindows(SW_SHOW);
    /*不要调用 delete dlg;*/
    }在上面的代码中我们新生成了一个对话框对象,而且在退出函数时并没有销毁该对象。因为如果此时销毁该对象(对象被销毁时窗口同时被销毁),而此时对话框还在显示就会出现错误。