使用CB的技巧来解决VC中动态绑定事件

原创 2002年12月16日 16:27:00
 

使用CB的技巧来解决VC中动态绑定事件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

首先声明一下,我对VC不是很熟,我有一个同事在用VC的时候发现动态创建的按钮不容易处理它的事件(譬如Click),他创建了好几个按钮,但是要处理他们的单击事件的时候很麻烦,要建好几个相对应的函数。

我是用CB的,在CB中的事件绑定是很容易的一件事,只要预先创建一个MyClick (TObject *Sender)的函数,然后Button->OnClick=MyClick:便可以了,即使是很多的按钮,都可以通过这个方法来用这个函数处理,在函数中把Sender强制转化为TButton类型便可以作相应的处理。

把上面的做法运用到VC中,我想也是可以的。

首先继承CButton(CMyButton),在头文件中申明typedef  void  (*CMyClick)(int ID);//这里面的参数根据不同的情况来设置。

在类中定义一个公有的成员变量

public:

CMyClick m_MyClick;

int m_ID;//这个是用来记录按钮的唯一标志

然后处理这个类的原有的OnClick事件,在函数中这样写

void OnClicked()

{

             if(m_MyClick)

                    m_MyClick (m_ID);

           }

这样一切OK

 

在你的程序中首先创建一个函数(不能是类的成员函数)

 void __cdecl  MyClick(int ID)

{

        //做你想做的事情

        AfxMessageBox(“你点击了按钮了”);

}

//动态创建,动态绑定

for(int i=0;i<ButtonCount;i++)

{

CMyButton tButton;

.....

tButton.m_ID=i;

tButton.m_MyClick=MyClick;

...

}

 

 

//下面是CmyButton

typedef  void  (*CMyClick)(int ID);

class CMyButton : public CButton

{

// Construction

public:

       CMyButton();  

// Attributes

public:

CMyClick m_MyClick;

int m_ID;//这个是用来记录按钮的唯一标志

 // Operations

public:

 

// Overrides

       // ClassWizard generated virtual function overrides

       //{{AFX_VIRTUAL(CMyButton)

       //}}AFX_VIRTUAL

 

// Implementation

public:

       virtual ~CMyButton();

 

       // Generated message map functions

protected:

       //{{AFX_MSG(CMyButton)

       afx_msg void OnClicked();

       //}}AFX_MSG

 

}

Jquery给动态添加的元素绑定事件:live() delegate() on()

Append()添加的元素事件不起作用, 给动态添加的元素绑定事件
  • yhc0322
  • yhc0322
  • 2017年06月29日 14:43
  • 591

jq 动态绑定事件

这篇文章主要介绍了jQuery给动态添加的元素绑定事件的方法,对比了jQuery中事件绑定的方法以及常见版本使用绑定的区别,具有一定参考借鉴价值,需要的朋友可以参考下     本...
  • juner_ge
  • juner_ge
  • 2017年02月10日 12:49
  • 310

jQuery-为动态添加的元素绑定事件

在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件。像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是...
  • xiaozhi_2016
  • xiaozhi_2016
  • 2016年08月11日 16:53
  • 20857

js动态绑定事件方法

1.给对象绑定事件 var t = document.getElementById("tab1"); t.onclick = function tst(){ alert(''); } ...
  • okyoung188
  • okyoung188
  • 2016年10月29日 14:35
  • 2376

jQuery学习笔记之给动态生成元素绑定事件

jQuery动态绑定元素事件
  • qq12547345
  • qq12547345
  • 2015年11月10日 10:47
  • 2542

Jquery给Dom 动态绑定事件

我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是 在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件。 js的事件监听跟css不一样,css只要设定好了样式,不论是...
  • u012997311
  • u012997311
  • 2016年07月28日 19:55
  • 2938

【BCB】CB调用VC的dll,lib生成方法--VC dll转CB lib

CB所用lib生成方法 【运行】->输入【CMD】->输入【implib  c:\***.lib  c:\***.dll】
  • cloveryork123
  • cloveryork123
  • 2013年08月05日 11:36
  • 1294

jquery2.0动态绑定事件

有时候,我们希望通过JS动态生成一些元素,然后将该元素添加到(appendTo)到文档流中。而且,我们还希望在上面绑定一些事件。 看到网友有说使用live的,但是jQuery2.0并不适用,建议大家...
  • zdavb
  • zdavb
  • 2015年12月19日 11:06
  • 1279

jQuery使用on()方法给动态生成元素绑定事件

jquery on()方法是jquery1.7+后才使用的 由于需求:动态添加了以下代码 1 2 3 4 5 6 7 8 9 tr cl...
  • qq_32686369
  • qq_32686369
  • 2016年07月25日 20:38
  • 4752

CB快捷键

• Ctrl+D 在选中内容后面再把这部分粘贴一遍,D即double。 • Ctrl+Shift+C注释掉当前行或选中部分,Ctrl+Shift+X解除注释。 • Ctrl+T 和上一行交换位置 ...
  • Geecky
  • Geecky
  • 2016年07月05日 20:45
  • 813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用CB的技巧来解决VC中动态绑定事件
举报原因:
原因补充:

(最多只允许输入30个字)