MFC 学习遇到的一些问题的解决方案

一 建立菜单项

  1. 新建自己的菜单项
  1. 资源视图中Menu项添加一个Menu资源

 

 

 

  1. 菜单项命名,添加ID

 

  1. 在MainForm.cpp文件中的OnCreate()函数中去除之前默认的菜单项,添加自己的菜单项。

SetMenu(NULL);

           CMenu menu;

         menu.LoadMenuA(IDR_TMENU);

        SetMenu(&menu);

        menu.Detach();

 

  1. 在OnCreat()中注释掉一些和之前菜单有关的代码(关闭默认菜单栏)

//if (!m_wndMenuBar.Create(this))

   //{

   // TRACE0("未能创建菜单栏\n");

   // return -1;      // 未能创建

   //}

// TODO: 如果您不希望工具栏和菜单栏可停靠,请删除这五行

   /*m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);*/

   //m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

   EnableDocking(CBRS_ALIGN_ANY);

   /*DockPane(&m_wndMenuBar);*/

   //DockPane(&m_wndToolBar);

 

 

二 添加快捷键

1.建立加速器,使ID号与相应的快捷键对应

2.在Mainform.h文件中添加HACCEL hAccel  protected类型变量,在Mainform的构造函数中加载快捷键。

 

  hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));

 

3.在MainForm函数中建立一个PreTranslateMessage()虚函数,并在其中添加如下代码:

if(::TranslateAccelerator(GetSafeHwnd(),hAccel,pMsg))

       return   true;

三 设置启动图标

1.建立或导入一个XXX.ico文件,导入文件要将其放在工程下res文件夹中,或直接放入res文件夹再导入。

2.在MainForm.h文件中添加一个HICON proteced类型变量hicon,然后在其OnCreate()函数中加入如下代码:

m_hicon = AfxGetApp()->LoadIcon(IDR_START);

          SetIcon(m_hicon,TRUE);

          SetIcon(m_hicon,FALSE);

 

四 一些可能会遇到的问题

  1. 项目属性页 运行库 最好采用多线程DLL(/MD)

 

2,若解决文件占用过大,可进行如下操作

  1. 打开解决方案,生成->清理解决方案。
  2. 删除文件夹中的IPCH文件和SDF文件。

      3. “工具-> 选项-> 文本编辑器-> C/C++-> 高级”将“回退位置->始终使用回退位置”设置为true,将“回退位置已在使用时,不警告”也设置为True,然后删除 sdf 文件和 ipch 目录,再次打开解决方案,ipch与sdf就不会再产生了。

 

 

可以在 "回退位置" 属性中,设置一个固定的路径来存储这些文件,比如E:\Temp。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值