Help, 关于Dialog的几个问题. 一. 在第一个对话框里怎样启动第二个对话框...?二, MFC的对话框默认的是'回车键'退出. 如何去掉.三, 还没有出来.四, 希望给出代码. 五, 谢谢.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CFileDialog dlg(参数);dlg.DoModal() 首先回答第一个问题“在第一个对话框里怎样启动第二个对话框...?” (1)、在第一个对话框的.h 中加入第二个对话框的.h (2)、在第一个对话框的.cpp中需要调用的地方加入如下代码: CYourSecondDlgClass secondDlg; secondDlg.DoModal(); (3)、以此类推。第二个问题“MFC的对话框默认的是'回车键'退出. 如何去掉.”的回答 在对话框的.h中的如下位置添加“看此行代码”前的函数定义 // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CMyDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL PreTranslateMessage(MSG *pMsg);//看此行代码 //}}AFX_VIRTUAL 再在对话框的.cpp中加入PreTranslateMessage函数的声明代码,如下: BOOL CMyDlg::PreTranslateMessage(MSG *pMsg) { if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_RETURN) { return TRUE; } } return CDialog::PreTranslateMessage(pMsg); }解答完毕。注:同样可以屏蔽其它键,如"ESC"等。 To daizh() ( ) 如果我经常用第一个对话框启动第二个对话框. 按照你的方法很不好. 还有安照你的方法第二个对话框想保存的数据每次启动都要保存.我先说说我想做的事吧.我在CMyApp里建立了这两个对话框的指针.CFirstDlg * fstDlg;CSencondDlg * scdDlg;在InitInstance()里new 成个对象.然后呢. 启动第一个frtDlg. 第一个用DoModal().关于第二个呢?~ :) 如何启动.? 当用fstDlg启动scdDlg的时候, 就要scdDlg.ShowWindow(SW_SHOW);scdDlg.ShowWindow(SW_HIDE)就可以了.怎么实现?~ 第一个用domodal()就可以。垮工程的可以这样WinExec("C:\\dlg.exe",SW_SHOWNORMAL|SW_SHOW);第二个重载OnOk函数,封掉里面的一行代码。 MFC如何按下button后让线程循环(贴码) Win7下没有收到WM_PAINT消息 求助:RegCreateKeyEx()问题 一个文件传输代码中的问题 线程启动函数的问题 CRITICAL_SECTION是什么类型?用来做什么的? 散分 如何播放.wav文件? 急 在线 等 ,string 类型的日期时间如何相减? ***怎样发送系统热键****(详见文章) 邮件发送 安装VC6.0遇到的一个菜问题……
dlg.DoModal()
(1)、在第一个对话框的.h 中加入第二个对话框的.h
(2)、在第一个对话框的.cpp中需要调用的地方加入如下代码:
CYourSecondDlgClass secondDlg;
secondDlg.DoModal();
(3)、以此类推。第二个问题“MFC的对话框默认的是'回车键'退出. 如何去掉.”的回答
在对话框的.h中的如下位置添加“看此行代码”前的函数定义
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMyDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL PreTranslateMessage(MSG *pMsg);//看此行代码
//}}AFX_VIRTUAL
再在对话框的.cpp中加入PreTranslateMessage函数的声明代码,如下: BOOL CMyDlg::PreTranslateMessage(MSG *pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_RETURN)
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}解答完毕。
注:同样可以屏蔽其它键,如"ESC"等。
我先说说我想做的事吧.
我在CMyApp里建立了这两个对话框的指针.
CFirstDlg * fstDlg;
CSencondDlg * scdDlg;
在InitInstance()里
new 成个对象.然后呢. 启动第一个frtDlg. 第一个用DoModal().
关于第二个呢?~ :) 如何启动.?
当用fstDlg启动scdDlg的时候, 就要scdDlg.ShowWindow(SW_SHOW);
scdDlg.ShowWindow(SW_HIDE)就可以了.怎么实现?~
垮工程的可以这样WinExec("C:\\dlg.exe",SW_SHOWNORMAL|SW_SHOW);第二个重载OnOk函数,封掉里面的一行代码。