error C2361: initialization of 'hmenu' is skipped by 'default' label
程序为:
{
CMenu m_menu;
POINT pt;
GetCursorPos(&pt);
m_menu.CreatePopupMenu();
m_menu.AppendMenu(MF_STRING|MF_ENABLED,IDM_CLOSE,"关闭");
m_menu.TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
HMENU hmenu=m_menu.Detach();
m_menu.DestroyMenu();
}请问一下各位大虾上面的错误是什么意思啊?
是程序有问题吗?如何去除该问题啊?
程序为:
{
CMenu m_menu;
POINT pt;
GetCursorPos(&pt);
m_menu.CreatePopupMenu();
m_menu.AppendMenu(MF_STRING|MF_ENABLED,IDM_CLOSE,"关闭");
m_menu.TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
HMENU hmenu=m_menu.Detach();
m_menu.DestroyMenu();
}请问一下各位大虾上面的错误是什么意思啊?
是程序有问题吗?如何去除该问题啊?
解决方案 »
- 绘图和表格数据的关联????
- 把另个工程当作模块添加进来
- SNMP编程请教
- 如何把一个Dialogbase程序中预定义的对话框灰改成自己的颜色?
- 为么总是拷不过去呢?
- 请教!通过向导生成的WIN32工程,工作区只有Class View和File View, 如何才能出现Resource View?
- 怎样将子窗口的消息传递给父窗口?
- 如何抓取用MCI(mciSendString函数)播放的影音文件中的图片(急up有分)
- 在IE设置为缺省的情况下,怎么用ActiveX?
- sql server 2000或2005 查询表的所有字段
- release 模式 access violation debug 模式 出现 the value of esp。。。 在线等!
- 请问VC程序的登录界面在那几个地方可以改,请指教,最好有代码给看,非常感谢!
m_menu.DestroyMenu(); 将HMENU hmenu提到wuitch {} 外面声明
HMENU hmenu=m_menu.Detach();
拆成
HMENU hmenu=NULL;
hmenu=m_menu.Detach(); 试试
void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CMenu m_menu;
POINT pt;
GetCursorPos(&pt);
m_menu.CreatePopupMenu();
m_menu.AppendMenu(MF_STRING|MF_ENABLED,22222,L"关闭");
m_menu.TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
HMENU hmenu=m_menu.Detach();
m_menu.DestroyMenu();
}
initialization of 'menu' is skipped by 'default' label
当把case WM_RBUTTONDOWN:处的代码放到一个大括号中变可编译通过,但菜单显示为灰色,是否跟这边的代码也有关系啊?
HMENU m_hmenu;
switch(uMouseMsg)
{
case WM_LBUTTONDBLCLK:
this->ShowWindow(SW_SHOWNORMAL);//显示程序窗口
AfxGetApp()->m_pMainWnd->SetForegroundWindow();
break;
case WM_RBUTTONDOWN://popup a menu about this porg
CMenu menu;
POINT pt;
GetCursorPos(&pt);
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING|MF_ENABLED,IDM_CLOSE,"关闭");
menu.AppendMenu(MF_STRING|MF_ENABLED,IDM_SHOW,"显示");
menu.EnableMenuItem(IDM_CLOSE, MF_ENABLED);
menu.TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
m_hmenu=menu.Detach();
menu.DestroyMenu();
break;