N
newnewer
Unregistered / Unconfirmed
GUEST, unregistred user!
最近在看李维的那本vcl,很不理解,vcl的每个windows组件都调用了MakeObjectInstance设定窗口函数,好像每个新创建的组件都重新注册一个窗口类(窗口类我指的是调用Windows.RegisterClass()注册的),然后都设定了自己的窗口回调函数?这样子,产生了消息就直接到了组件注册的回调函数?我看原生的windows程序,只有一个窗口回调函数,然后创建原生的button,edit控件的时候,也不需要窗口类!这我就不理解了,vcl控件产生消息后,是到了唯一的一个窗口回调函数,然后分配到各个控件注册的回调函数,还是,直接分配到了各个控件注册的回调函数。是怎么分配的,代码在哪?这里李维好像没有说清楚,当然,最有可能是我没有理解了,没找到地方!___________________________________翻了翻dfw的离线包,这个问题,好像就是窗口子类化。一个windows控件创建后,就有了一个handle,使用setwindowlong(handle,,),就可以重新设定这个控件的处理函数嘛?貌似delphi在创建新控件的时候,都会给这个控件注册一个新的窗口类,这是为啥?______________________________CreateWindowex()的第一个参数就是已经注册的窗口类啊,button,edit等控件,是windows已经注册好的类所以可以直接用的。要是这样理解的话,那就应该是消息直接发送到各个控件了吧?_________________________________书的第四章消息机制,来回看了5遍了,还是似懂非懂的......哎。。。。。。,虽然是4,5年前的书了___________________________________________________________________