每次需要显示的时候就往里面添加子菜单项;
每次隐藏的时候就
void CMyWnd::HideMenu()
{
if (!m_pMenu) return; UINT uIndex = 0;
UINT uCount = m_pMenu->GetMenuItemCount();
if (uCount == 0xFFFFFFFF)
return;
if (uCount)
{ // 清空菜单项
for (uIndex = uCount; uIndex != 0; uIndex--)
m_pMenu->RemoveMenu(uIndex - 1, MF_BYPOSITION);
}
}显示时就
void CMyWnd::ShowMenu()
{
if (!m_pMenu)
{
m_pMenu = new CMenu();
m_pMenu->CreatePopupMenu();
}
UINT uIndex = 0;
UINT uCount = m_pMenu->GetMenuItemCount();
if (uCount == 0xFFFFFFFF)
return;
if (uCount)
{ // 清空旧菜单项
for (uIndex = uCount; uIndex != 0; uIndex--)
m_pMenu->RemoveMenu(uIndex - 1, MF_BYPOSITION);
} ...
m_pMenu->AppendMenu(MF_STRING, 0, _T("菜单文字1")); int x = 20; // 菜单显示坐标
int y = 30;
m_pMenu->TrackPopupMenu(TPM_RIGHTALIGN, x, y, this);
}
每次隐藏的时候就
void CMyWnd::HideMenu()
{
if (!m_pMenu) return; UINT uIndex = 0;
UINT uCount = m_pMenu->GetMenuItemCount();
if (uCount == 0xFFFFFFFF)
return;
if (uCount)
{ // 清空菜单项
for (uIndex = uCount; uIndex != 0; uIndex--)
m_pMenu->RemoveMenu(uIndex - 1, MF_BYPOSITION);
}
}显示时就
void CMyWnd::ShowMenu()
{
if (!m_pMenu)
{
m_pMenu = new CMenu();
m_pMenu->CreatePopupMenu();
}
UINT uIndex = 0;
UINT uCount = m_pMenu->GetMenuItemCount();
if (uCount == 0xFFFFFFFF)
return;
if (uCount)
{ // 清空旧菜单项
for (uIndex = uCount; uIndex != 0; uIndex--)
m_pMenu->RemoveMenu(uIndex - 1, MF_BYPOSITION);
} ...
m_pMenu->AppendMenu(MF_STRING, 0, _T("菜单文字1")); int x = 20; // 菜单显示坐标
int y = 30;
m_pMenu->TrackPopupMenu(TPM_RIGHTALIGN, x, y, this);
}
解决方案 »
- MFC生成Release版本
- bmpMem.LoadBitmap(IDB_) 调试版出错?
- UNICODE的CString转换成unsigend char *
- md5算法咋不对呢?帮我看看,谢谢
- 关于串口和modem拨号的问题。
- 天啊,怎么办,CSOCKET中send(setbuf,20000)返加正确值,receive(receivebuf,20000),竟然要分成几段接收,怎么办啊大哥
- 有一设备是LED显示的,如何将显示数值读入计算机?
- 使用扫描枪问题,能否加前缀键?
- Directx 初始化失败(非常急)
- teechart pro v5 ActiveX的注册码?
- 在对话框中,如何实现打开某文件文件?
- 请问谁有《Visual C++ 6 宝典》配套光盘中的源码!
显示部分的代码是拷过来的,没有整理好..
显示时就
void CMyWnd::ShowMenu()
{
if (!m_pMenu)
{
m_pMenu = new CMenu();
m_pMenu->CreatePopupMenu();
}
UINT uIndex = 0;
UINT uCount = m_pMenu->GetMenuItemCount();
if (uCount && (uCount != 0xFFFFFFFF))
{ // 清空旧菜单项
for (uIndex = uCount; uIndex != 0; uIndex--)
m_pMenu->RemoveMenu(uIndex - 1, MF_BYPOSITION);
} ...
uIndex = 0;
m_pMenu->AppendMenu(MF_STRING, uIndex++, _T("菜单文字1"));
m_pMenu->AppendMenu(MF_STRING, uIndex++, _T("菜单文字2"));
m_pMenu->AppendMenu(MF_STRING, uIndex++, _T("菜单文字3"));
... int x = 20; // 菜单显示坐标
int y = 30;
m_pMenu->TrackPopupMenu(TPM_RIGHTALIGN, x, y, this);
}