我想了n久,还是搞不定。。(100分)

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

movax

Unregistered / Unconfirmed
GUEST, unregistred user!
我在win31下用delphi1.0。。。。。(唉,诸位别走啊。。。)<br>用了enumchildwindows这个api函数,功能是枚举某个窗口的所有子窗口。<br>其中它有个param参数是enumchildproc的callback函数,<br>我在里面要作处理。。。<br>它只能正确得到第一个child window 的hwnd,<br>然而以后的win31传过来的都是错误的hwnd。。<br>为什么?<br>函数定义:<br>enumchildwindows(parentwindowhwnd, lpenumchildproc,parentwindowhwnd );<br>enumchildproc(hwnd:Hwnd;lparam:lparam);
 
天哪,我可没有见过1。0:(
 
不会吧?我这里是正常的(嘿嘿,我也有 delphi1.0,还有 vb4.0 16+32bit……)。<br>后来传来的是什么 hWnd?<br>enumchildwindows(parentwindowhwnd, lpenumchildproc,parentwindowhwnd );<br>第三个参数是一个自定义的值,对应回调函数的 lparam,你是不是写错了?
 
to mikedeakins:<br>那个lparam,就是给它赋值为零,结果也是一样的。或者还有其他写法?<br>后来系统传过来的hwnd ,我也不知道是些什么东西。<br>在你那里正常?
 
1.0真令人怀念....<br><br>.........................<br>.........................<br>.......啊...光盘找到了...:)<br>
 
原来我是这样定义的:<br>enumchildproc(hwnd:Hwnd;lparam:lparam);far;<br>然后我改成了:<br>enumchildproc(hwnd:Hwnd;lparam:lparam);export;<br>居然可以了,真奇怪了?<br>
 
所有回调函数必须是输出的(包括窗口消息处理函数)。嘿嘿,我也没想到居然会是<br>这个错误。下次把帮助文件里的函数原型复制下来再写吧。
 
多人接受答案了。
 
后退
顶部