Coding Life

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

弹出菜单很简单,LoadMenu/CreatePopupMenu -> AppendMenu/InsertMenu -> TrackPopupMenu

问题是有时候需要让第一项初始状态为选中,效果就像我们在记事本窗口上按 Alt+F 时 第一个(新建)菜单项被高亮一样。

M$ 提供了一个可以实现类似效果的API:HiliteMenuItem,但是它只是用来高亮菜单项,并不会设置菜单的选中状态(弹出菜单后按下回车或下箭头就会发现问题了)。

最近遇到这个问题,研究了好一阵子,除了发现别人也束手无策之外,一无所获,最后只好用下面这个简单而取巧的方法实现,那就是自己模拟按下↓键。

 

首先响应 WM_INITMENUPOPUP,然后在响应函数里 PostMessage(WM_KEYDOWN, VK_DOWN, 0);

 

仅作记录,以备后用。

posted on 2010-06-29 16:54  yonken  阅读(635)  评论(0编辑  收藏  举报