小弟我在vc6.0下自定义了一个消息“WM_SHELLMESSAGE”,
小弟发现在SendMessage(WM_SHELLMESSAGE,0,1)时程序先调用WM_SHELLMESSAGE消息的处理函数,然后在继续执行下面的语句,这和调用函数不一样吗?]
请:大侠指教!
我觉得某种程度上有差别
比如,你要发消息给另外一个窗口,让他触发消息之后执行相应的处理函数
这时,调用函数并不能取代消息,除非你能访问到另外一个窗口,并且可以控制它的处理函数
但是真是这样的话,我们也没有必要用消息了
如果处理函数就是本身类中的一个成员函数
我看有点 "画蛇添足 "了!!
呵呵,没别的意思
可以直接调用该函数,为什么还要用消息来绕圈
不过从这种情况来看,这样的消息和调用函数没有质的区别
只不过多做了一些没用的工作
同意楼上,另外,有的情况下使用消息触发程序段执行可以避免程序在执行过程中的等待。函数则必须等待其执行完 |
|
当然大大不同。
一,你可以用PostMessage,这样就不会是出现等 "调用WM_SHELLMESSAGE消息的处理函数,然后在继续执行下面的语句 ",他的功能就是发出一个消息了事。 二,在其它的地方要发送消息,你只要知道这个C***Wnd的HWND就可以SendMessage和PostMessage,而如果是要调用他的成员Function,那你还得知道这个C***Wnd类的具体定义形式。 三,请补充...
SendMessage
该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
|