理解windows消息通告消息和命令消息!!!

今天工作中用到了一些东西,从而又进一步探究了一下windows的消息机制!!!!

我的探究发现如下:

我的项目中要求在ATL中的复合控件上动态的创建static 控件,并能够拖动!!!

其中就涉及到了控件的通告消息的传递顺序!!

当我在父窗口中拦截STN_CLICKED。然后又在创建static 的时候替换了它原来的窗口过程,使所有的static窗口过程都指向的我自己的窗口过程其中我就拦截了WM_LBUTTONDOWN这个消息,开始我拦截了这个消息之后,没有让原来的窗口过程处理,然后我发现我在父窗口中拦截的STN_CLICKED消息不能响应了!这时候我才明白,所谓的WM_COMMAND,WM_NOTIFY消息只是由我们的windows的标准消息转化而来的!!!

我猜测在原先的窗口过程中将WM_LBUTTONDOWN这个消息进过转化,然后再向父窗口发送STN_CLICKED消息,并传入响应参数!!!!!!!!!

windows为什么要这样做呢????

我想原因有以下:

首先 ,所有的windows common contrl 都具有接受windows 标准消息,但是由于控件的不同,所以我们应该针对不同的控件,让他产生不同的消息,以示区分!

再者,因为不同控件他们的功能各有不同。所以将标准消息转化成响应的WM_NOTIFY WM_COMMAND消息,发送给父窗口,让父窗口有处理子窗口的机会!

 

第三,通过对消息的改装过后,再在消息中定义一些针对相应控件的数据结构,这样通过这个消息传送过来的数据结构有利于我们自己对这个控件的操作!!!!

 

 

第四,还没想到!!O(∩_∩)O~!!!!!!

有不对的地方还请各位高手指点!!!!!!

 

你可能感兴趣的:(数据结构,windows,工作,command)