我希望实现这样一个功能
这样一个菜单:
file edit myself
-》port -》1
-》set 2
3
myself 下面有2个子菜单,port和set,
port下面有3个子菜单,1,现在问题是,我需要每次进来重新设定当前port下面有几个菜单,
然后显示。
比如我这次进去要求port下面只显示1个菜单那么就只出现1。
2,这个动态新建的菜单按钮在点击时要能响应事件。
望大家帮忙,我正在注册新的帐号,分不够可以再加。
这样一个菜单:
file edit myself
-》port -》1
-》set 2
3
myself 下面有2个子菜单,port和set,
port下面有3个子菜单,1,现在问题是,我需要每次进来重新设定当前port下面有几个菜单,
然后显示。
比如我这次进去要求port下面只显示1个菜单那么就只出现1。
2,这个动态新建的菜单按钮在点击时要能响应事件。
望大家帮忙,我正在注册新的帐号,分不够可以再加。
CMenu*pMenu=this->GetMenu();
CMenu*pmSub=pMenu->GetSubMenu(2);//2,port
pmSub->InsertMenu(-1,MF_CHECKED|MF_STRING,100,"1");
pmSub->InsertMenu(-1,MF_CHECKED|MF_STRING,200,"2");
pmSub->InsertMenu(-1,MF_CHECKED|MF_STRING,300,"3"); this->DrawMenuBar();
但是这样以后菜单变成这个样子了:
file edit myself
-》port
-》1
-》2
-》3
-》set
还有个问题就是经过this->DrawMenuBar();这个语句后,菜单要重新点开了。
1:怎么在这个动态新建的菜单按钮在点击时要能响应事件2:还有个问题就是经过this->DrawMenuBar();这个语句后,菜单要重新点开了。有没有办法做到,动态改变了以后,菜单刷新后还是刚才那个位置。不用重新再点开菜单?
声明一菜单ID范围比如2000 到 3000
用
ON_COMMAND_RANGE(
2000,
3000,
memberFxn );
进行消息映射.2:还有个问题就是经过this->DrawMenuBar();这个语句后,菜单要重新点开了。有没有办法做到,动态改变了以后,菜单刷新后还是刚才那个位置。不用重新再点开菜单?
为什么要DrawMenuBar? 你应该在WM_INITMENUPOPUP消息里把你的所有菜单重新构建好。
用ON_WM_INITMENUPOPUP映射此消息响应。
2:不太明白你说什么,DrawMenuBar是CWnd的成员函数,当你改变一个菜单时使用它,这样你的菜单才能立马显示出来,要不你需要鼠标在上面晃几晃才能显示
sortMenu.CreatePopupMenu();
sortMenu.AppendMenu(MF_BYCOMMAND | MF_STRING | MF_ENABLED,TG::eSortForType,_T("1"));
sortMenu.AppendMenu(MF_BYCOMMAND | MF_STRING | MF_ENABLED,TG::eSortForState,_T("2"));
hMenu = sortMenu.GetSafeHmenu();pMenu->AppendMenu(MF_POPUP,(UINT)hMenu,_T("port"));
在这个菜单里:
file edit myself
-》port
-》set
我希望鼠标划过port的时候进行一个事件处理,比如得到目前port只有1和2,
那么这个事件处理完以后开始动态生成子菜单,
最终菜单直接就变成下列的样子:
file edit myself
-》port -》1
-》set 2
3
这就是我的根本目的。
file edit myself
-》port
-》set
其中port没有子菜单。
鼠标划过port的时候进行一个事件处理,比如得到目前port只有1和2,
那么这个事件处理完以后开始动态生成子菜单,
最终菜单直接就变成下列的样子:
file edit myself
-》port -》1
-》set 2 现在剩下的问题就是
1 怎么在 划过port的时候进行一个事件处理,划过port是什么事件
谢谢高人指点。我去整理一下把处理方法写出来,大家共享。
可以到这里去回复:
http://community.csdn.net/Expert/topic/5679/5679521.xml?temp=.995434
你门对combobox熟悉不熟悉?
我想实现这样一个功能
combobox下拉以后假设有 10个内容,我鼠标划过每个内容,在旁边的静态框里就显示当前的内容。
问题:
1,我怎么响应鼠标划过这个事件。
可以到这里去回复:
http://community.csdn.net/Expert/topic/5679/5679521.xml?temp=.995434
你门对combobox熟悉不熟悉?
-----
广告意识很好..
----
我鼠标划过每个内容..?
----
什么意思..?
这个问题的100分已经有主了,所以另开了个100分的帖子。
http://community.csdn.net/Expert/topic/5679/5679521.xml?temp=.995434
发布出来大家分享,如果有遇到同样问题的网友可以借鉴一下
vc中动态添加处理菜单事件
http://www.dayjs.com/html/C/kjcz/20070728/7636.html感谢csdn上很多热心人和高人。再次感谢csdn上的(lyg_zy(学无止境,宁静致远)和hurryboylqs())!
结分。
我的另外一个问题,大家也帮忙看一下。