• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

小问题:如何在PopupMenu弹出菜单后,自动选中其中某一选项

snowfield 2005-03-21 08:47:43
我希望在PopupMenu弹出菜单后,其中某一选项自动高亮。应该如何实现?谢谢!
...全文
101 点赞 收藏 7
写回复
7 条回复
jishiping 2005年03月23日
也许笨的方法,就是如楼上说的,用keybd_event来模拟按键。
void __fastcall TForm1::PopupMenu1Popup(TObject *Sender)
{
//这儿的 NUM 就是菜单的位置,不包含分隔菜单-
for(int n=0; n<NUM; n++) {
if (n!=0) Sleep(5);
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
}
}
回复 点赞
setdefault 2005年03月22日
在OnPopup里面加上下面这句试试
keybd_event(VK_DOWN, 0, 0, 0);
回复 点赞
snowfield 2005年03月22日
我试过了,将个菜单项的default设置为true,只是字体变黑,按回车菜单就消失,但并没有执行相应的菜单项下的命令。实在不知道是怎么回事。
回复 点赞
jishiping 2005年03月22日
将个菜单项的default设置为true了,在弹出时,该选项变黑,此时按回车就执行该项目命令。
回复 点赞
snowfield 2005年03月22日
比如鼠标移到某个菜单项上时,就会变为高亮。此时再回车就回执行该项目命令。
现在我就是希望弹出菜单后,其中一项自动变为高亮,就好象鼠标移过去了一样。当然如要执行还需要再按回车。

我将个菜单项的default设置为true了,但在弹出时,该选项只是变黑而已,不知为何,并未变为高亮,好象并没什么作用。

请指教!
回复 点赞
milkwayhong 2005年03月21日
4242
回复 点赞
jishiping 2005年03月21日
自动高亮是什么意思?自由鼠标移到某个菜单上面,这个菜单才会高亮。也许楼主可以通过设定菜单的Default来达到你的要求。
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2567

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告