Error 发表于 2006-2-24 23:35

[求助]怎么删除事件处理程序

你好!<BR>    我在VC7中添加事件处理程序时错误的将本来应添加到A类的程序添加到了B类当中,最后才发现这个错误,但是又不知到怎么删除B类的这个多余的成员函数。<BR>    因为是利用系统辅助创建的这个函数,所以一定在其他地方也有所修改。有没有办法利用系统辅助删除这个函数呢?<BR>    谢谢高手指点。

冰镇柠檬汁儿 发表于 2006-2-27 10:39

<P>void InitializeComponent(void)<BR>  {<BR>   this-&gt;browserListView = new System::Windows::Forms::ListView();<BR>   this-&gt;currentLabel = new System::Windows::Forms::Label();<BR>   this-&gt;displayLabel = new System::Windows::Forms::Label();<BR>   this-&gt;SuspendLayout();<BR>   // <BR>   // browserListView<BR>   // <BR>   this-&gt;browserListView-&gt;Location = System::Drawing::Point(0, 104);<BR>   this-&gt;browserListView-&gt;Name = S"browserListView";<BR>   this-&gt;browserListView-&gt;Size = System::Drawing::Size(512, 304);<BR>   this-&gt;browserListView-&gt;TabIndex = 0;<BR>   this-&gt;browserListView-&gt;Click += new System::EventHandler(this, browserListView_Click);<BR>   // <BR>   // currentLabel<BR>   // <BR>   this-&gt;currentLabel-&gt;Location = System::Drawing::Point(16, 40);<BR>   this-&gt;currentLabel-&gt;Name = S"currentLabel";<BR>   this-&gt;currentLabel-&gt;Size = System::Drawing::Size(144, 23);<BR>   this-&gt;currentLabel-&gt;TabIndex = 1;<BR>   // <BR>   // displayLabel<BR>   // <BR>   this-&gt;displayLabel-&gt;Location = System::Drawing::Point(192, 40);<BR>   this-&gt;displayLabel-&gt;Name = S"displayLabel";<BR>   this-&gt;displayLabel-&gt;Size = System::Drawing::Size(288, 23);<BR>   this-&gt;displayLabel-&gt;TabIndex = 2;<BR>   // <BR>   // Form1<BR>   // <BR>   this-&gt;AutoScaleBaseSize = System::Drawing::Size(6, 14);<BR>   this-&gt;ClientSize = System::Drawing::Size(512, 405);<BR>   this-&gt;Controls-&gt;Add(this-&gt;displayLabel);<BR>   this-&gt;Controls-&gt;Add(this-&gt;currentLabel);<BR>   this-&gt;Controls-&gt;Add(this-&gt;browserListView);<BR>   this-&gt;Name = S"Form1";<BR>   this-&gt;Text = S"Form1";<BR>   <FONT color=#ff0033>this-&gt;Load += new System::EventHandler(this, Form1_Load);</FONT><BR>   this-&gt;ResumeLayout(false);</P>
<P>  }<BR>中,删掉你想删掉的控件的响应方法,比如注红的那行是<FONT color=#000000>Form1_Load的调用,不知道你问的是不是这个</FONT></P>

Error 发表于 2006-2-27 13:27

<P>    有点头晕啊![em06]</P>
<P>    在菜单资源上点击右键添加处理程序:</P>[attach]5334[/attach]<BR><BR>    然后VC会在类里面添加这么一个处理函数:<BR>[attach]5335[/attach]<BR><BR>    但是没有找到移除这个成员的方法。<BR>    因为VC会自动添加一些东西,比如:<BR>[attach]5336[/attach]<BR><BR>    VC在其它地方可能也会添加一些,但是如果总是要手动在源文件里删除我觉得太不方便了,也太不安全了。<BR>    就是想询问什么办法可以自动删除这种?<BR>

冰镇柠檬汁儿 发表于 2006-2-28 09:56

直接按del试试

Error 发表于 2006-3-2 17:51

    不行啊,能想到的办法都试过了,不知道有没有办法实现自动删除。[em13]

sorceress 发表于 2006-3-2 20:01

那估计是删不了了,我也试过了,我觉得它应该不影响什么吧

Error 发表于 2006-3-3 17:46

    我觉得那会影响源代码的可读性,也可能会影响编译时的效率,甚至也可能影响程序执行时的效率。

冰镇柠檬汁儿 发表于 2006-3-5 08:24

这到不会,因为你添加的是一段已经由系统自动写好的代码,很有规范的,所以不会影响可读性。现在的计算机性能之强大,以至于不会由于你的这一小段代码而浪费大量的编译时间。至于程序执行时的效率,只要编译完之后,就不会再进行第二次编译,你这小段代码更不会对性能有什么实质性的影响,因为运行比编译快的多。(当然了除非你添加的这段代码有数干行代码)

迷迷糊糊 发表于 2006-7-27 13:18

打开该类的属性窗,进入事件页。<BR>打开对应控件左边的小Plus后,选择相应事件处理程序,右侧会出现下拉窗。里面就有删除命令,可以将该事件处理程序删除。[em01]

xmm7409 发表于 2006-8-17 21:34

删除

将该函数的定义,函数体及消息映射删除或注释就可以了。

页: [1]

编程论坛