ddx_cbstring_ddr和ddx_东方财富ddx抓涨停(18)

电脑杂谈  发布时间:2017-03-01 20:06:45  来源:网络整理

lpszNewItem = NULL )用于在指定位置插入一菜单,位置由变量nPosition指明。如果nFlags包含MF_BYPOSITION则表明插入在nPosition位置,如果包含

MF_BYCOMMAND表示插入在命令ID为nPosition的菜单处。

? BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR

lpszNewItem = NULL )用于修改某一位置的菜单,如果nFlags包含MF_BYPOSITION则表明修改nPosition位置的菜单,如果包含MF_BYCOMMAND表示修改命令ID为

nPosition处的菜单。

? BOOL RemoveMenu( UINT nPosition, UINT nFlags )用于删除某一位置的菜单。如

果nFlags包含MF_BYPOSITION则表明删除nPosition位置的菜单,如果包含

MF_BYCOMMAND表示删除命令ID为nPosition处的菜单。

? BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp ) 和 BOOL

InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp )可以添加一位图菜单,但这样的菜单在选中时只是反色显示,并不美观。 视图中是没有菜单的,在框架窗口中才有,所以只有用

AfxGetApp()->m_pMainWnd->GetMenu()才能得到应用的菜单指针。

最后我讲一下如何在程序中弹出一个菜单,你必须先装入一个菜单资源,你必需得到一个弹出菜单的指针然后调用BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL )弹出菜单,你需要指定(x,y)为菜单弹出的位置,pWnd为接收命令消息的窗口指针。下面有一段代码说明方法,下载示例代码 17K。当然为了处理消息你应该在pWnd指明的窗口中对菜单命令消息进行映射。

CMenu menu;

menu.LoadMenu(IDR_POPUP);

CMenu* pM=menu.GetSubMenu(0);

CPoint pt;

GetCursorPos(&pt);

pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);

另一种做法是通过CMenu::CreatePopupMenu()建立一个弹出菜单,然后使用

TrackPopupMenu弹出菜单。使用CreatePopupMenu创建的菜单也可以将其作为一个弹出项添加另一个菜单中。下面的伪代码演示了如何创建一个弹出菜单并进行修改后弹出: CMenu menu1,menu2;

menu1.CreatePopupMenu

menu1.InsertMenu(1)

menu1.InsertMenu(2)

menu1.InsertMenu(3)

menu2.CreatePopupMenu

menu2.AppendMenu(MF_POPUP,1,menu1.Detach()) 将弹出菜单加入 or InsertMenu...

menu2.InsertMenu("string desc");

3.4 文档,视,框架之间相互作用


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-35251-18.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...