ATL中使用CMenu的问题

darkic 2015-01-09 02:47:23
最近因项目需求刚开始学习ATL的相关东西..
我做了一个简单的ATL工程..
里面有加入一个ATL的对话框..
现在有需求是把在对话框标题栏上右键显示的菜单屏蔽掉..
不是完全屏蔽..完全屏蔽我知道可以用..
ModifyStyle(WS_SYSMENU, 0);

现在最大化.最小化按钮因为可以直接在dialog的属性里设置已经屏蔽..
现在我的问题就是困扰在标题栏右键菜单会出现 移动 这个菜单项...
我搜索了网上一些资料..
有提供一种方法

CMenu *menu;
menu = GetSystemMenu(FALSE);
menu->RemoveMenu(SC_MOVE,MF_BYCOMMAND);

CMenu是需要#include "afxwin.h"的..

入正题:
问题来了..
如果我不 #include "afxwin.h"
则提示 CMenu是未定义的标识符..
如果我 #include "afxwin.h"
不管我放在哪个位置..
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>

也搜索了一些资料..
有提出把 #include "afxwin.h" 换个位置的..
最前面.最后面.中间..各种都试过来了..
还是不行...

只能来求救了...
希望各位大大帮忙...
希望可以达成以下两条中的任意一条就可以了..
1.不使用CMenu可以屏蔽标题栏右键出现的移动这个菜单项..或者直接屏蔽整个菜单都行..但我需要保留右上角的关闭按钮..
2.使用CMenu相关引用的问题..
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkic 2015-01-15
  • 打赏
  • 举报
回复
没其他人回答了.. 我换了其他方式处理了..所以.分给你吧
sumos 2015-01-09
  • 打赏
  • 举报
回复
ATL的话应该是 #include <atlwin.h>

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧