为什么总是取不到系统菜单? 用GetSystemMenu(m_hWnd, FALSE);返回的总是空的0x00000000。我用的是FormView。m_hWnd 应该是MainFrame的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在我的FormView子类中写:CMenu* a=GetSystemMenu( FALSE);CMenu* b=this->GetParent()->GetSystemMenu(FALSE);结果b取道了,a是0x00000000。说明由MainFrame可以取道sysMenu.而且我调试看了this->GetParent()是0x015a1360.然后我到另外一个我自己写得类中写: CWnd * pWnd = CWnd::FromHandle(m_hWnd); CMenu SysMenu; SysMenu.Attach( GetSystemMenu(m_hWnd, FALSE) );GetSystemMenu(m_hWnd, FALSE)返回的是0x00000000,即没有取到。这是pWnd是0x015a1360,即是MainFrame. 这样吧:CMenu SysMenu; SysMenu.Attach( AfxGetMainWnd()->GetSystemMenu(FALSE) ); 不行啊,这样AfxGetMainWnd()->GetSystemMenu(FALSE) 返回的是CMenu*但是SysMenu.Attach()要的参数是HMENU.编译通不过。 其实我也试过用CMenu* a = pWnd->GetSystemMenu(FALSE);(在我说的另外一个我自己写得类中)这样写也是没有取到。但是在我的FormView子类CMenu* b=this->GetParent()->GetSystemMenu(FALSE);就可以。而且this->GetParent() 和 pWnd所指地址都是一样的啊,应该都是MainFrame的句柄。为什么在两个地方写就会有不同的结果呢? 而且很奇怪的是,下面这句话CMenu* a=AfxGetMainWnd()->GetSystemMenu(FALSE);在这两个地方使用也是同样的效果,即在FormView子类就可以另外一个我自己写得类中就不可以。 既然这样,那么我建议用以下方法试试看:在FormView子类中用一下:CMenu* b=this->GetParent()->GetSystemMenu(FALSE);(虽然只是得到一个临时的b,但是于后面可能有点作用)然后我想这时候在另外一个类中用SysMenu.Attach( GetSystemMenu(m_hWnd, FALSE) );就可以了取到了 bcg 主菜单一部分在左,一部分在右 csv文件导出格式问题,急,在线等 如何在无绑定模式下使用DBGrid???急!!!!!! 第一次开发有关CDMA无线数据传输方面,有经验请给点指导 编译错误 弱弱的问:什么是logo?目的是什么? 100分狂送。。。在线等 VC6.0怎么开发淘宝程序啊? 请教:TRACE宏的输出到哪去看啊? feof()函数究竟是做什么的? 怎么样进行DWG文件读写,以及为什么创建对象有问题?高手快来!!! 如何获取dwg文件中块的标签
CMenu* a=GetSystemMenu( FALSE);
CMenu* b=this->GetParent()->GetSystemMenu(FALSE);
结果b取道了,a是0x00000000。说明由MainFrame可以取道sysMenu.
而且我调试看了this->GetParent()是0x015a1360.然后我到另外一个我自己写得类中写:
CWnd * pWnd = CWnd::FromHandle(m_hWnd);
CMenu SysMenu;
SysMenu.Attach( GetSystemMenu(m_hWnd, FALSE) );GetSystemMenu(m_hWnd, FALSE)返回的是0x00000000,即没有取到。
这是pWnd是0x015a1360,即是MainFrame.
SysMenu.Attach( AfxGetMainWnd()->GetSystemMenu(FALSE) );
AfxGetMainWnd()->GetSystemMenu(FALSE) 返回的是CMenu*
但是SysMenu.Attach()要的参数是HMENU.编译通不过。
CMenu* a = pWnd->GetSystemMenu(FALSE);
(在我说的另外一个我自己写得类中)这样写也是没有取到。但是在我的FormView子类
CMenu* b=this->GetParent()->GetSystemMenu(FALSE);
就可以。而且this->GetParent() 和 pWnd所指地址都是一样的啊,应该都是MainFrame的句柄。
为什么在两个地方写就会有不同的结果呢?
CMenu* a=AfxGetMainWnd()->GetSystemMenu(FALSE);
在这两个地方使用也是同样的效果,
即在FormView子类就可以
另外一个我自己写得类中就不可以。
在FormView子类中用一下:
CMenu* b=this->GetParent()->GetSystemMenu(FALSE);
(虽然只是得到一个临时的b,但是于后面可能有点作用)然后我想这时候在另外一个类中用
SysMenu.Attach( GetSystemMenu(m_hWnd, FALSE) );
就可以了取到了