全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1593
推到 Plurk!
推到 Facebook!

如何动态将其它的PopupMenu设定成某个MenuItem的子菜单?

尚未結案
circusmonkey
一般會員


發表:6
回覆:10
積分:8
註冊:2004-06-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-20 08:08:19 IP:141.24.xxx.xxx 未訂閱
小弟有一疑问: 我现在有2个PopupMenu - Menu1、Menu2。 我希望当Menu1弹出时,它的第一个MenuItem拥有一个子菜单,而这个子菜单就是已经创建的Menu2。 Menu1 > |- MenuItem11 > |- MenuItem21(来自Menu2) 目前我使用的方法是: var AItem: TMenuItem; begin AItem := Menu2.Items; Menu1.Insert(0, AItem); end; 我不希望通过复制菜单的方法,把Menu2下面的所有内容都复制到指定位置,因为复制时可能会遗漏信息。 但是上述做法有个bug:无法兼容Unicode。当我使用TntControls进行扩展时,AItem.Caption将变成乱码。 我在网上有看见过通过API的方法修改MenuItem的子菜单的方法。但似乎对以及一级菜单无效,但对二级菜单有效。也就是说,我可以实现: Menu1 > |- MenuItem1 > |- 无用的二级菜单 > |- MenuItem21(来自Menu2) 我无法将上图中的“无用的二级菜单”给去掉。 实现上述方法的代码。 var Info: TMenuItemInfo; begin Info.cbSize := 44; Info.fMask := MIIM_STRING or MIIM_SUBMENU; Info.dwTypeData:= PAnsiChar('无用的二级菜单'); Info.hSubMenu := Menu2.Handle; InsertMenuItem(MenuItem1.Handle, 0, True, Info); end; 请教各位,如下代码究竟问题出在什么地方? var Info: TMenuItemInfo; begin Info.cbSize := 44; Info.fMask := MIIM_SUBMENU; Info.hSubMenu := Menu2.Handle; InsertMenuItem(Menu1.WindowHandle, 0, True, Info); end; 發表人 - circusmonkey 於 2005/06/20 08:09:30 發表人 - circusmonkey 於 2005/06/20 08:10:56
系統時間:2024-06-29 17:08:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!