鸡啄米
VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)›评论
-
49. helloworld:
“这是因为我们需要在AdditionDlg.h中定义CTipDlg类型的指针变量”
这句吓我一跳,还好是楼主没这么做,不然真是颠覆我半年来的认识了2016/1/2 11:20
-
48. showmesky:
我想问一下,在模态对话框时,
nRes=tipDlg.DoModal();
if(IDCANCEL==nRes)
return
有nRes这个返回值来判断程序下一步是计算还是不作操作。
而非模态对话框的代码里面,没有这样的语句,
系统是怎么知道该做什么操作的。
PS:我是初学者,可能该问题太简单,望不吝赐教。BlazingMT 于 2016-7-12 10:07:40 回复同问!!!2015/12/1 07:12
-
47. 我的队友太无敌:
接上
CAdditionDlg::~CAdditionDlg()
{
// 如果非模态对话框已经创建则删除它
if (NULL != m_pTipDlg)
{
// 删除非模态对话框对象
delete m_pTipDlg;
}
}
2015/11/26 19:17
-
46. 我的队友太无敌:
楼主我照着你的教程写的,编译没有错误,但是运行之后,输入完加数和被加数点击计算,就自动退出了,也就是没有生成非模态对话框。唯一我感觉有问题的地方就是在构造函数那了,附上代码:
class CAdditionDlg : public CDialogEx
{
// 构造
public:
CAdditionDlg(CWnd* pParent = NULL); // 标准构造函数
CAdditionDlg(CTipDlg *m_pTipDlg); //标准构造函数
~CAdditionDlg(); //析构函数
// 对话框数据
enum { IDD = IDD_ADDITION_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
private:
CTipDlg *m_pTipDlg;
// 实现
protected:
HICON m_hIcon;
......
}
CAdditionDlg::CAdditionDlg(CTipDlg *m_pTipDlg) //构造函数的实现
{
m_pTipDlg = NULL;
}
void CAdditionDlg::OnBnClickedAddButton()
{
//非模态对话框
// 如果指针变量m_pTipDlg的值为NULL,则对话框还未创建,需要动态创建
if (NULL == m_pTipDlg)
{
// 创建非模态对话框实例
m_pTipDlg = new CTipDlg();
m_pTipDlg->Create(IDD_TIP_DIALOG, this);
}
// 显示非模态对话框
m_pTipDlg->ShowWindow(SW_SHOW);
// 将各控件中的数据保存到相应的变量
UpdateData(TRUE);
// 将被加数和加数的加和赋值给m_editSum
m_editSum = m_editSummand + m_editAddend;
// 根据各变量的值更新相应的控件。和的编辑框会显示m_editSum的值
UpdateData(FALSE);
}showmesky 于 2015-12-1 7:19:56 回复你的构造函数是自己新写的吗?
我是用系统原先的,你的好像跟我看见的不一样...
CAdditionDlg::CAdditionDlg(CTipDlg *m_pTipDlg) //构造函数的实现
{
m_pTipDlg = NULL;
}
你的代码这里好像有些问题
(CTipDlg *m_pTipDlg)
我的代码里面的是这样:
CAdditionDlg::CAdditionDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CAdditionDlg::IDD, pParent)
, m_EditSummand(0)
, m_EditSum(0)
, m_EditAddend(0)
, m_pTipDlg(NULL)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_EditAddend = 0.0;
}
2015/11/26 19:16
-
45. 卓董:
我在写非模态对话框,一开始一直提示新加的IDD_TIP_DLG未识别的标识符,我以为是因为我以前写过别的程序的原因,于是我重置了vs的环境,后来调试是RPC服务不可用,我用控制面板看了一下,服务已启用,不知道为什么?2015/10/27 20:20
发表评论