回 帖 发 新 帖 刷新版面

主题:如何添加动态创建按钮的消息响应函数

我程序的执行结果界面上可以绘制一些图形(如圆,矩形等),每个图形代表一个控件,如按钮、编辑框等,对这些图形都可以添加一些描述其代表的控件的属性和动作的内容,在工具栏上还有一个“生成”按钮,点击该按钮后,要求产生一个对话框,并在对话框上按照绘制的图形及其代表的属性和动作内容创建几个控件,但这些动态创建的按钮的消息响应函数如何建立呢?即如果我在对话框中点了一个“显示”按钮,接着对话框中的编辑框控件中就显示一句话,如何响应“显示”按钮的这个OnClick()呢?注意,OnClick()函数的内容在编程序时还不能确定,需要在结果界面上绘制图形后添加该图形代表的属性和动作的内容时添加。

回复列表 (共3个回复)

沙发


CButton *p_Button = new CButton();
p_Button->Create( "Good", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | nStyle, rect, this, ID_MYBUT1 ); 
然后添加:
afx_msg void OnMybut1()
ON_BN_CLICKED(ID_MYBUT1, OnMybut1)
最后
void CTextEditorView::OnMybut1()
{
MessageBox( "哈!你单击了动态按钮。" );
}
我知道这样可以动态创建一个按钮并添加消息响应函数,但其消息响应函数还是手动
添加,我想问一下有没有一种方法,可以动态创建一个按钮后再动态创建其消息响应函数?

板凳


呵呵,这里有很好的回答:
http://www.cnblogs.com/cy163/archive/2006/11/04/549724.html

是不是太晚了,嘿嘿!

3 楼

直接动态修改消息映射应该是不允许的,不过你可以在响应函数里面再调用一个函数,采用函数指针,动态控制其执行体

我来回复

您尚未登录,请登录后再回复。点此登录或注册