请问该发什么消息?具体参数是什么?由于某种原因,我不想直接调用treeview控件的nodeclick事件过程,而是想通过发消息来模拟用户点击了一个节点,来使这个事件过程被触发。我试了如下代码出错,说对象不支持该属性或方法:Call SendMessage(tre1.hwnd, WM_NOTIFY, tre1, NM_CLICK)
我还试过向treeview控件的父窗体发消息,也出错,说:您为这个属性输入的设置无效。Call SendMessage(父窗体.hwnd, WM_NOTIFY, tre1, NM_CLICK)
我还试过向treeview控件的父窗体发消息,也出错,说:您为这个属性输入的设置无效。Call SendMessage(父窗体.hwnd, WM_NOTIFY, tre1, NM_CLICK)
测试一下是否能触发事件,如果不能的话,就需要模拟鼠标操作
是这样,我是在VBA里编程。VBA里扩展类不是那么直截了当的。我现在想扩展treeview控件。我就做了个类,类里含有withevents的treeview对象变量。这样,我只要对这个类对象的treeview成员对象变量的事件过程编程,所有的和这个类关联的treeview控件的事件过程就都可以省了。比如,nodeclick事件,我只要在我自己的类里写一次事件过程就行了。不过,有时候还需要一些特别的处理,这就需要这个事件不仅在我自己的类里得到通用处理,而且在包含treeview控件的窗体里得到特别处理,就是需要为同一个事件在两处写两个事件过程,但也不都是这样的情况。不管怎样吧,反正nodeclick事件通过这种事件机制我是能解决的。不过,麻烦的是,有时候,我在程序里需要模拟一下nodeclick事件,就不能简单地通过调用nodeclick事件过程来处理,你也看到了,因为有可能存在多个事件过程,不一定需要调几个。所以需要直接触发nodeclick事件,这就是我的问题的缘起……对发消息我很不在行,后来我放弃了,用的这个方法:http://blog.csdn.net/slowgrace/archive/2009/01/14/3772557.aspx
(LPARAM)himl);
我是这样发送成功的。