首页
社区
课程
招聘
[旧帖] [求助]WM_INITMENU和WM_INITMENUPOPUP 0.00雪花
发表于: 2008-12-27 23:00 9280

[旧帖] [求助]WM_INITMENU和WM_INITMENUPOPUP 0.00雪花

2008-12-27 23:00
9280
WM_INITMENUPOPUP概念好象比较明确一点,似乎是下拉菜单在弹出前被触发,让我们有机会初始修改下拉菜单的项目

我想知道WM_INITMEN是何种情况被触发,和WM_INITMENUPOPUP的区别是什么?

The WM_INITMENU message is sent when a menu is about to become active. It occurs when the user clicks an item on the menu bar or presses a menu key. This allows the application to modify the menu before it is displayed.

这个英文我看不懂,如果是顶层菜单项还没有显示,在显示前,用户又怎么可能点击到菜单?
如果不是顶层菜单是下拉菜单,那么和WM_INITMENUPOPUP的区别是什么?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也没用过,不过看你的这段介绍,WM_INITMENU发生在点击窗口的菜单栏里面的一项或者是按了某个对应的菜单按键吧。WM_INITMENUPOPUP好像是发生在下拉菜单或者子菜单弹出之前。
2008-12-28 11:44
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
This allows the application to modify the menu before it is displayed.

显示前怎可能被点到??
2008-12-28 15:38
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该类似这样的关系
WM_INITMENU --> WM_CREATE
WM_INITMENUPOPUP --> WM_SHOW
2008-12-28 15:47
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
WM_INITMENUPOPUP要求菜单的子项存在的,只是改变子项的状态,而WM_INITMEN可以生成或者删除子项

WM_INITMENU 包含了WM_INITMENUPOPUP的功能,这样理解对吗?
2008-12-28 16:15
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
WM_INITMENU的解释里面说了,是在你点菜单栏(menu bar)里面的一项时才发生的。举个例子,打开记事本,里面有File,Edit,Format,View和Help。楼主你的鼠标为什么不能点到这些项目?你点了File,在弹出New/Open/Save/Save as.../Page Setup.../Print.../Exit这几项之前,就会收到WM_INITMENU消息。你可以用VS的Spy++看到这个消息。消息记录比较长,我就不贴了,楼主亲自试一下就明白了。
2008-12-28 17:39
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
算了,好人做到底,送佛送到西。。。

以下是记录了点击Format菜单的记录

<00001> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00002> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00003> 003A0580 S WM_CTLCOLOREDIT hdcEdit:6B0108B5 hwndEdit:000206AA
<00004> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00005> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00006> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00007> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00008> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00009> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00010> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00011> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00012> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00013> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00014> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00015> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00016> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00017> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00018> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00019> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00020> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00021> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00022> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00023> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00024> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00025> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00026> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00027> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00028> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00029> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00030> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00031> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00032> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00033> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00034> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00035> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00036> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00037> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00038> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00039> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00040> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00041> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00042> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00043> 003A0580 S WM_SETCURSOR hwnd:000206AA nHittest:HTBORDER wMouseMsg:WM_MOUSEMOVE
<00044> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00045> 003A0580 S WM_CTLCOLOREDIT hdcEdit:A2010DBF hwndEdit:000206AA
<00046> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00047> 003A0580 S WM_NCHITTEST xPos:176 yPos:79
<00048> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00049> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00050> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00051> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:176 yPos:79
<00052> 003A0580 S WM_NCHITTEST xPos:175 yPos:77
<00053> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00054> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00055> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00056> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:175 yPos:77
<00057> 003A0580 S WM_NCHITTEST xPos:173 yPos:77
<00058> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00059> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00060> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00061> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:173 yPos:77
<00062> 003A0580 S WM_NCHITTEST xPos:173 yPos:76
<00063> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00064> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00065> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00066> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:173 yPos:76
<00067> 003A0580 S WM_NCHITTEST xPos:172 yPos:76
<00068> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00069> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00070> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00071> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:172 yPos:76
<00072> 003A0580 S WM_NCHITTEST xPos:170 yPos:74
<00073> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00074> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00075> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00076> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:170 yPos:74
<00077> 003A0580 S WM_NCHITTEST xPos:169 yPos:74
<00078> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00079> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00080> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00081> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:169 yPos:74
<00082> 003A0580 S WM_NCHITTEST xPos:167 yPos:73
<00083> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00084> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00085> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00086> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:167 yPos:73
<00087> 003A0580 S WM_NCHITTEST xPos:166 yPos:73
<00088> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00089> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00090> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00091> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:166 yPos:73
<00092> 003A0580 S WM_NCHITTEST xPos:164 yPos:73
<00093> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00094> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00095> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00096> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:164 yPos:73
<00097> 003A0580 S WM_NCHITTEST xPos:163 yPos:73
<00098> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00099> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00100> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00101> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:163 yPos:73
<00102> 003A0580 S WM_NCHITTEST xPos:163 yPos:71
<00103> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00104> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_MOUSEMOVE
<00105> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00106> 003A0580 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:163 yPos:71
<00107> 003A0580 S WM_NCHITTEST xPos:163 yPos:71
<00108> 003A0580 R WM_NCHITTEST nHittest:HTMENU
<00109> 003A0580 S WM_MOUSEACTIVATE hwndTopLevel:003A0580 nHittest:HTMENU uMsg:WM_LBUTTONDOWN
<00110> 003A0580 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
<00111> 003A0580 S WM_WINDOWPOSCHANGING lpwp:0007FE98
<00112> 003A0580 R WM_WINDOWPOSCHANGING
<00113> 003A0580 S WM_NCPAINT hrgn:00000001
<00114> 003A0580 R WM_NCPAINT
<00115> 003A0580 S WM_ERASEBKGND hdc:D4010A47
<00116> 003A0580 R WM_ERASEBKGND fErased:True
<00117> 003A0580 S WM_WINDOWPOSCHANGED lpwp:0007FE98
<00118> 003A0580 R WM_WINDOWPOSCHANGED
<00119> 003A0580 S WM_ACTIVATEAPP fActive:True dwThreadID:00000000
<00120> 003A0580 R WM_ACTIVATEAPP
<00121> 003A0580 S WM_NCACTIVATE fActive:True
<00122> 003A0580 R WM_NCACTIVATE
<00123> 003A0580 S WM_ACTIVATE fActive:WA_ACTIVE fMinimized:False hwndPrevious:(null)
<00124> 003A0580 S WM_IME_SETCONTEXT fSet:1 (LONG)iShow:C000000F
<00125> 003A0580 S WM_IME_NOTIFY dwCommand:0000000B dwData:00000000
<00126> 003A0580 R WM_IME_NOTIFY
<00127> 003A0580 S WM_IME_NOTIFY dwCommand:00000002 dwData:00000000
<00128> 003A0580 R WM_IME_NOTIFY
<00129> 003A0580 R WM_IME_SETCONTEXT
<00130> 003A0580 S WM_SETFOCUS hwndLoseFocus:(null)
<00131> 003A0580 S WM_KILLFOCUS hwndGetFocus:000206AA
<00132> 003A0580 S WM_COMMAND wNotifyCode:EN_KILLFOCUS wID:15 hwndCtl:000206AA
<00133> 003A0580 R WM_COMMAND
<00134> 003A0580 R WM_KILLFOCUS
<00135> 003A0580 S WM_IME_SETCONTEXT fSet:0 (LONG)iShow:C000000F
<00136> 003A0580 R WM_IME_SETCONTEXT
<00137> 003A0580 S WM_COMMAND wNotifyCode:EN_SETFOCUS wID:15 hwndCtl:000206AA
<00138> 003A0580 R WM_COMMAND
<00139> 003A0580 R WM_SETFOCUS
<00140> 003A0580 R WM_ACTIVATE
<00141> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTMENU wMouseMsg:WM_LBUTTONDOWN
<00142> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00143> 003A0580 P WM_NCLBUTTONDOWN nHittest:HTMENU xPos:163 yPos:71
<00144> 003A0580 S WM_SYSCOMMAND uCmdType:SC_MOUSEMENU xPos:163 yPos:71
<00145> 003A0580 S WM_ENTERMENULOOP fIsTrackPopupMenu:False
<00146> 003A0580 R WM_ENTERMENULOOP
<00147> 003A0580 S WM_SETCURSOR hwnd:003A0580 nHittest:HTCAPTION wMouseMsg:0000
<00148> 003A0580 R WM_SETCURSOR fHaltProcessing:False
<00149> 003A0580 S WM_INITMENU hmenuInit:0046057E
<00150> 003A0580 R WM_INITMENU

<00151> 003A0580 S WM_MENUSELECT uItem:2 fuFlags:MF_POPUP | MF_HILITE | MF_MOUSESELECT hmenu:0046057E
<00152> 003A0580 R WM_MENUSELECT
<00153> 003A0580 S WM_INITMENUPOPUP hmenuPopup:000806B6 uPos:2 fSystemMenu:False
<00154> 003A0580 R WM_INITMENUPOPUP

<00155> 003A0580 S WM_PAINT hdc:00000000
<00156> 003A0580 R WM_PAINT
<00157> 003A0580 S WM_CTLCOLOREDIT hdcEdit:D4010A47 hwndEdit:000206AA
<00158> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00159> 003A0580 S WM_CTLCOLOREDIT hdcEdit:56011F4B hwndEdit:000206AA
<00160> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00161> 003A0580 S WM_CTLCOLOREDIT hdcEdit:56011F4B hwndEdit:000206AA
<00162> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00163> 003A0580 S WM_CTLCOLOREDIT hdcEdit:56011F4B hwndEdit:000206AA
<00164> 003A0580 R WM_CTLCOLOREDIT hBrush:01100066
<00165> 003A0580 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:163 yPos:71
<00166> 003A0580 P WM_NCMOUSELEAVE
<00167> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00168> 003A0580 R WM_ENTERIDLE
<00169> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00170> 003A0580 R WM_ENTERIDLE
<00171> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00172> 003A0580 R WM_ENTERIDLE
<00173> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00174> 003A0580 R WM_ENTERIDLE
<00175> 003A0580 P WM_LBUTTONUP fwKeys:0000 xPos:163 yPos:71
<00176> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00177> 003A0580 R WM_ENTERIDLE
<00178> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:163 yPos:70
<00179> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00180> 003A0580 R WM_ENTERIDLE
<00181> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:163 yPos:64
<00182> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00183> 003A0580 R WM_ENTERIDLE
<00184> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:163 yPos:61
<00185> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00186> 003A0580 R WM_ENTERIDLE
<00187> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:163 yPos:58
<00188> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00189> 003A0580 R WM_ENTERIDLE
<00190> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:164 yPos:55
<00191> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00192> 003A0580 R WM_ENTERIDLE
<00193> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:165 yPos:52
<00194> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00195> 003A0580 R WM_ENTERIDLE
<00196> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:165 yPos:50
<00197> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00198> 003A0580 R WM_ENTERIDLE
<00199> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:165 yPos:49
<00200> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00201> 003A0580 R WM_ENTERIDLE
<00202> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:167 yPos:46
<00203> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00204> 003A0580 R WM_ENTERIDLE
<00205> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:168 yPos:44
<00206> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00207> 003A0580 R WM_ENTERIDLE
<00208> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:168 yPos:43
<00209> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00210> 003A0580 R WM_ENTERIDLE
<00211> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:168 yPos:41
<00212> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00213> 003A0580 R WM_ENTERIDLE
<00214> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:170 yPos:38
<00215> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00216> 003A0580 R WM_ENTERIDLE
<00217> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:171 yPos:38
<00218> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00219> 003A0580 R WM_ENTERIDLE
<00220> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:171 yPos:37
<00221> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00222> 003A0580 R WM_ENTERIDLE
<00223> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:171 yPos:35
<00224> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00225> 003A0580 R WM_ENTERIDLE
<00226> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:173 yPos:34
<00227> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00228> 003A0580 R WM_ENTERIDLE
<00229> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:174 yPos:31
<00230> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00231> 003A0580 R WM_ENTERIDLE
<00232> 003A0580 P WM_MOUSEMOVE fwKeys:0000 xPos:174 yPos:29
<00233> 003A0580 S WM_ENTERIDLE fuSource:MSGF_MENU hwnd:002207D6
<00234> 003A0580 R WM_ENTERIDLE
<00235> 003A0580 S WM_UNINITMENUPOPUP
<00236> 003A0580 R WM_UNINITMENUPOPUP
<00237> 003A0580 S WM_CAPTURECHANGED hwndNewCapture:00000000
<00238> 003A0580 R WM_CAPTURECHANGED
<00239> 003A0580 S WM_MENUSELECT uItem:0 fuFlags:FFFF (menu was closed) hmenu:00000000
<00240> 003A0580 R WM_MENUSELECT
<00241> 003A0580 S WM_EXITMENULOOP fIsTrackPopupMenu:False
<00242> 003A0580 R WM_EXITMENULOOP
<00243> 003A0580 R WM_SYSCOMMAND
<00244> 003A0580 S WM_NCACTIVATE fActive:False
<00245> 003A0580 R WM_NCACTIVATE fDeactivateOK:True
<00246> 003A0580 S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:(null)
<00247> 003A0580 R WM_ACTIVATE
<00248> 003A0580 S WM_ACTIVATEAPP fActive:False dwThreadID:00000C10
<00249> 003A0580 R WM_ACTIVATEAPP
<00250> 003A0580 S WM_COMMAND wNotifyCode:EN_KILLFOCUS wID:15 hwndCtl:000206AA
<00251> 003A0580 R WM_COMMAND
2008-12-28 17:51
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=icersg;557281]WM_INITMENU的解释里面说了,是在你点菜单栏(menu bar)里面的一项时才发生的。举个例子,打开记事本,里面有File,Edit,Format,View和Help。楼主你的鼠标为什么不能点到这些项目?你点了File,在弹出New/Open/Save/Save as.../Page Setup.../Print.../Exit这几项之前,就会收到WM_INITMENU消息。你可以用VS的Spy++看到这个消息。消息记录比较长,我就不贴了,楼主亲自试一下就明白了。[/QUOTE]

我不是不明白这个,看说明也确实是这个意思,只是不明白和WM_INITMENUPOPUP的区别是什么?
点了File,弹出子菜单前,WM_INITMENUPOPUP消息应该也会被收到吧?
VS的Spy++我现在还看不懂,我现在只有学过DOS,QBASIC,16位汇编,目前我论坛提的问题全部还是学习32位汇编过程中遇到的。
2008-12-28 18:01
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
对呀,2个消息都会出现。我个人觉得这些消息符合条件就会发生,关键是你如何用这些消息设计你自己的控件。随便在窗口里点一下鼠标都可能产生几十条消息。就说“点击”这个事件吧,有人设计的在WM_LBUTTONDOWN处理,也有人设计的在WM_LBUTTONUP处理,可能都可以达到效果,但是看哪个更符合你的设计。回到最开始的那两个菜单消息,比如说WM_INITMENU消息,如果你看消息注释,他会说:
Remarks

A WM_INITMENU message is sent only when a menu is first accessed; only one WM_INITMENU message is generated for each access. For example, moving the mouse across several menu items while holding down the button does not generate new messages. WM_INITMENU does not provide information about menu items.


如果你按这个方法,左键按下菜单栏里面的Format,这是他会弹出Format下拉菜单,不要松开鼠标,再移到菜单栏的View菜单上,又回弹出View的下拉菜单,最后你松开鼠标。这个过程中,WM_INITMENU只产生一次,可是WM_INITMUNUPOPUP会相应的产生两次。你的程序是怎样设计的?在这种情况下哪个更接近你的目的?
2008-12-28 18:36
0
游客
登录 | 注册 方可回帖
返回
//