列表框更改选项后如何通知父窗口(100分)

  • 主题发起人 主题发起人 mcu
  • 开始时间 开始时间
M

mcu

Unregistered / Unconfirmed
GUEST, unregistred user!
本人写一个程序控制另一个已有程序,使用WINAPI  SendMessage(Hwnd,LB_SELITEMRANGEEX,0,StInt-1)控制已有程序列表框中选项,我的程序还需发一个消息给列表框的父窗口,通知父窗口列表框选项发生变化,不知如何发这个消息?<br>我查资料发现LBN_SELCHANGE消息可能可以,但不知道参数<br>idListBox = (int) LOWORD(wParam); &nbsp;// identifier of list box <br>hwndListBox = (HWND) lParam; &nbsp; &nbsp; &nbsp; // handle of list box <br>第一个参数idListBox该怎么给?谢谢! &nbsp;
 
大家都不知道这个参数“idListBox = (int) LOWORD(wParam); &nbsp;// identifier of list box ”怎么给吗,还是money太少?
 
我的问题其实很简单,在SendMessage函数中,identifier of list box(button等其它控件)参数怎么给?
 
已经得到控件的句柄,如何得到控件的ID?
 
GetDlgCtrlID
 
呵呵,这么简单的问题。
 
可是我用GetDlgCtrlID 得到 “identifier of list box” 代入sendmessage编译能通过,运行时“非法操作”出错,不知为何?原代码如下:<br>HFwnd1 := FindWindow(nil,'Protel Signal Integrity...'); //得到父窗口句柄<br>HFwnd2 &nbsp;:= FindWindowEx(HFwnd1,0,'WxCanvasClass',nil); //得到一级子窗口句柄<br>Hwnd &nbsp;:= FindWindowEx(HFwnd2,0,'ListBox',nil); //得到二级子窗口(listbox)句柄<br>SendMessage(Hwnd,LB_SELITEMRANGEEX,0,ItCt); //向listbox发送消息(选中listbox某些                      //选项)<br>InEx := GetDlgCtrlID(Hwnd); //获得listbox的ID(identifier of list box)<br>SendMessage(HFwnd2,LBN_SELCHANGE,InEx,Hwnd); //向listbox的父窗口(一级子窗口)发                      //消息<br><br>程序编译通过运行最后一句时“非法操作”出错,请教各位大侠不知为何?
 
后退
顶部