S sanfeng310 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-08 #1 如何给另一个exe文件的TreeView发送消息,<br>给每个目录发送单击、双击事件<br>
Y yexiong Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-08 #2 sendwindow(TreeView的句柄,nil)
P Paladin_yf Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-09 #4 首先你要得到TreeView的句柄,得到TreeView的句柄可以用API函数GetDlgItem(hWndParent,nID)返回,hWndParent是TreeView所属窗口的句柄,nID是TreeView的Control ID。然后你就可以调用SendMessage或PostMessage(hWndTreeView,YourMessage,参数1,参数2)发送消息了。<br>(hWndParent可以用FindWindow(NULL,窗口标题)得到,nID可以用vc工具SPY++查到)
首先你要得到TreeView的句柄,得到TreeView的句柄可以用API函数GetDlgItem(hWndParent,nID)返回,hWndParent是TreeView所属窗口的句柄,nID是TreeView的Control ID。然后你就可以调用SendMessage或PostMessage(hWndTreeView,YourMessage,参数1,参数2)发送消息了。<br>(hWndParent可以用FindWindow(NULL,窗口标题)得到,nID可以用vc工具SPY++查到)
S sanfeng310 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-11 #5 对 “ nID是TreeView的Control ID”不明白
P Paladin_yf Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-12 #6 任何一个控件都有一个ID唯一标识,使用函数GetDlgItem(hWndParent,nID)需要控件ID为参数
S sanfeng310 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-13 #7 能否给我一段代码,例如打开资源管理器并执行一个可执行程序
强 强@子 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-13 #8 你可以在TreeView 里加消息处理过程,来出发双击操作。<br>在你想要触发TreeView双击操作时,发消息到TreeView就可以了。
Y yanyandt2 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-13 #9 用vc工具SPY++查到treeview的id,也就是Control ID<br>然后用FindWindow得到那个窗体的句柄,GetDlgItem(hWndParent,nID)<br>得到treeview的句柄,nID就是上面的那个Control ID,<br>然后用SendMessage发消息<br><br>好象还有一个API能枚举窗体上的所有控件,用这个应该也可以
用vc工具SPY++查到treeview的id,也就是Control ID<br>然后用FindWindow得到那个窗体的句柄,GetDlgItem(hWndParent,nID)<br>得到treeview的句柄,nID就是上面的那个Control ID,<br>然后用SendMessage发消息<br><br>好象还有一个API能枚举窗体上的所有控件,用这个应该也可以
Y yanyandt2 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-13 #10 好象是 EnumChildWindows 这个api<br>
P Paladin_yf Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-14 #11 例如:SendMessage(HWND($1C068C), WM_LBUTTONDBLCLK,$193D,0);<br>HWND($1C068C)是treeview的句柄<br>WM_LBUTTONDBLCLK是双击消息<br>$193D 前两位19是y坐标的16进制值,后两位3D是x坐标的16进制值<br>
例如:SendMessage(HWND($1C068C), WM_LBUTTONDBLCLK,$193D,0);<br>HWND($1C068C)是treeview的句柄<br>WM_LBUTTONDBLCLK是双击消息<br>$193D 前两位19是y坐标的16进制值,后两位3D是x坐标的16进制值<br>
P Paladin_yf Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-14 #12 由于vc编的程序和delphi的还有些不一样<br>vc中的控件ID是不变的<br>而delphi中的控件ID每次运行都不一样<br>所以如果你向vc的exe发消息,可以通过spy++查找控件ID来得到控件句柄<br>如果你向delphi的exe发消息,就麻烦一点,你得枚举那个exe的窗口中的控件,找到你想要得treeview控件,得到它的句柄
由于vc编的程序和delphi的还有些不一样<br>vc中的控件ID是不变的<br>而delphi中的控件ID每次运行都不一样<br>所以如果你向vc的exe发消息,可以通过spy++查找控件ID来得到控件句柄<br>如果你向delphi的exe发消息,就麻烦一点,你得枚举那个exe的窗口中的控件,找到你想要得treeview控件,得到它的句柄