mfc关于控件问题
之前已经添加好一个按钮,并且为这个按钮设置好了变量和函数。但是不小心删除了这个按钮。现在需要重新添加一个按钮,怎么样做才能将新按钮实现之前那个的全部功能?改ID?...
之前已经添加好一个按钮,并且为这个按钮设置好了变量和函数。但是不小心删除了这个按钮。现在需要重新添加一个按钮,怎么样做才能将新按钮实现之前那个的全部功能?改ID?
展开
4个回答
展开全部
有一个简单的办法,自己更改DDX和消息映射。
比如说原来的ID是IDC_BUTTON1,新增加的按钮ID是IDC_BTNEW。
更改DDX:
为原来按钮IDC_BUTTON1设置的变量,
在函数void CXXXDlg::DoDataExchange(CDataExchange* pDX)的实现中有定义,
在 //{{AFX_DATA_MAP(CXXXDlg)
和 //}}AFX_DATA_MAP
之间的DDX_XXXXX中,参数中有IDC_BUTTON1的就是。把DDX中所有IDC_BUTTON1的参数都更改为IDC_BTNEW就可以了。
更改消息映射:
假设原来对应的函数是OnButton1(),在消息映射中应该有如下语句:
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CXXXDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
将所有ON_BN_CLICKED(...)参数中的IDC_BUTTON1更改为IDC_BTNEW,就完成了消息映射的更改。
然后编译连接就应该可以了。
比如说原来的ID是IDC_BUTTON1,新增加的按钮ID是IDC_BTNEW。
更改DDX:
为原来按钮IDC_BUTTON1设置的变量,
在函数void CXXXDlg::DoDataExchange(CDataExchange* pDX)的实现中有定义,
在 //{{AFX_DATA_MAP(CXXXDlg)
和 //}}AFX_DATA_MAP
之间的DDX_XXXXX中,参数中有IDC_BUTTON1的就是。把DDX中所有IDC_BUTTON1的参数都更改为IDC_BTNEW就可以了。
更改消息映射:
假设原来对应的函数是OnButton1(),在消息映射中应该有如下语句:
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CXXXDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
将所有ON_BN_CLICKED(...)参数中的IDC_BUTTON1更改为IDC_BTNEW,就完成了消息映射的更改。
然后编译连接就应该可以了。
展开全部
修改ID 原来的按钮实现的代码还在 把ID改成和原来一样就OK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是改ID就可以了,控件不就是通过ID和函数响应的嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都想到改ID 还不尝试吓?
只要把ID和变量改成原来一样即可
只要把ID和变量改成原来一样即可
追问
还有一个问题,我现在点一个键后弹出来一个对话框,对话框里有一个编辑框,如何使我按出对话框的时候,编辑框输出我设定好的一个变量的值?
追答
添加一个控件变量(即一个变量绑定到控件,可以用IDE添加变量向导)
然后在对话框 初始化事件里面设置 一个值即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询