时间: 2021-07-31 作者:daque
郑力群 媒介 迩来,有几个网友发妹儿问了我少许对于wm_notify报告动静的运用题目,为此,我写了这篇作品,将我对wm_notify动静的领会阐明如次,蓄意能对诸位有所扶助。 引入wm_notify动静的因为 1、题目的提出: 在windows3.x中,不生存wm_notify动静,遏制子窗口的报告动静同菜单的吩咐动静及加快键动静一律,均运用wm_command来发送,此时,按照wm_command动静传播的做法,可领会含犹如下的传播构造:wparam high-order : notify code :(如ttn_needtext)wparam low-order : controlidlparam : controlhandle 运用上述构造举行动静的传播时,即使一个报告动静有少许附加的动静须要发送时(如传播lvn_columnclick时大概须要附加传递如点击的是那一列等消息),由于wm_command仅能传播如上的参数,故没辙做到。 2、处置的计划 --windows 3.x中的处置计划,为那些有附加动静传递诉求的报告动静,为它们各自设置了很多特出的动静。 以wm_drawitem为例: lparam参数变成指向drawitemstruct构造的南针,drawitemstruct构造如次:typedef struct tagdrawitemstruct {uint ctltype; uint ctlid; uint itemid; uint itemaction; uint itemstate; hwnd hwnditem; hdc hdc; rect rcitem; ulong_ptr itemdata; } drawitemstruct; 如许,就实行了附加参数的传播,一致的做法在windows3.x中到处看来。