首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在 win32/mfc 应用程序中隐藏/折叠主菜单

在 Win32/MFC 应用程序中隐藏/折叠主菜单,可以通过以下几种方法实现:

  1. 使用 SetMenu 函数将主菜单设置为 NULL

在 MFC 应用程序中,可以使用 SetMenu 函数将主菜单设置为 NULL 来隐藏主菜单。例如,在派生自 CFrameWnd 的主窗口类中,可以添加以下代码:

代码语言:cpp
复制
void CMainFrame::OnHideMenu()
{
    SetMenu(NULL);
}
  1. 使用 CheckMenuItem 函数将菜单项设置为 MF_CHECKEDMF_UNCHECKED

可以使用 CheckMenuItem 函数将菜单项设置为 MF_CHECKEDMF_UNCHECKED 来折叠主菜单。例如,在派生自 CFrameWnd 的主窗口类中,可以添加以下代码:

代码语言:cpp
复制
void CMainFrame::OnToggleMenu()
{
    CMenu* pMenu = GetMenu();
    if (pMenu != NULL)
    {
        UINT uState = pMenu->GetMenuState(ID_FILE_EXIT, MF_BYCOMMAND);
        if (uState & MF_CHECKED)
        {
            pMenu->CheckMenuItem(ID_FILE_EXIT, MF_BYCOMMAND | MF_UNCHECKED);
            SetMenu(NULL);
        }
        else
        {
            pMenu->CheckMenuItem(ID_FILE_EXIT, MF_BYCOMMAND | MF_CHECKED);
            SetMenu(pMenu);
        }
    }
}
  1. 使用 ShowWindow 函数将主菜单隐藏

可以使用 ShowWindow 函数将主菜单隐藏。例如,在派生自 CFrameWnd 的主窗口类中,可以添加以下代码:

代码语言:cpp
复制
void CMainFrame::OnHideMenu()
{
    CMenu* pMenu = GetMenu();
    if (pMenu != NULL)
    {
        pMenu->ShowWindow(SW_HIDE);
    }
}
  1. 使用 ModifyMenu 函数将菜单项设置为 MF_BYPOSITION | MF_HIDDEN

可以使用 ModifyMenu 函数将菜单项设置为 MF_BYPOSITION | MF_HIDDEN 来隐藏菜单项。例如,在派生自 CFrameWnd 的主窗口类中,可以添加以下代码:

代码语言:cpp
复制
void CMainFrame::OnHideMenuItem()
{
    CMenu* pMenu = GetMenu();
    if (pMenu != NULL)
    {
        pMenu->ModifyMenu(0, MF_BYPOSITION | MF_HIDDEN, NULL);
    }
}

以上是在 Win32/MFC 应用程序中隐藏/折叠主菜单的一些方法。具体实现方式可以根据应用程序的需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何让WIN32应用程序支持MFC类库

我们在调用一个控制台程序时一直都有DOS黑框闪烁一下,很多时候我们都不希望出现那个黑框,因为那样给人感觉特别不好,但是如果是控制台程序的话又是无法避免的。那是不是就没办法了呢,当然不是,我们可以选择在VS中制作Win32应用程序来解决,它虽然是窗口程序,但是我们可将窗口隐藏掉就不会像之前有闪烁的现象,但是默认生成的Win32应用程序又不能使用MFC类库,给我们编程造成不便,下面我就来教大家怎样在WIN32应用程序中支持MFC类库的方法,让我们接着开始吧! 首先,在文件中加入如下头文件语句: #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料 #endif #include <afx.h> #include <afxwin.h> // MFC 核心组件和标准组件 #include <afxext.h> // MFC 扩展 上面这段代码可以放在预编译头文件stdafx.h中,位置自己可定 然后在_tWinMain的开始加入 if (!AfxWinInit(hInstance, NULL, lpCmdLine, 0)) { MessageBox(NULL,_T("MFC init error!"),_T("Error!"),MB_OK); return 0; } 然后在菜单中依次选择"项目->属性->配置属性->常规->MFC的使用"中选择"在共享DLL中使用MFC";

03
  • 利用键盘钩子捕捉linux键盘动作,利用键盘钩子捕获Windows键盘动作[通俗易懂]

    引言  在科研生产中对研制、调试操作的记录是非常有必要而且是有很重要价值的。通过对记录信息的分析,可以在事故发生后准确的分析出事故的起因、操作是否存在失误等许多重要线索。通常需要记录的信息是多种多样的,如环境温度记录、软件运行记录、文件访问记录等等。这里将以键盘信息记录为例来讲述类似的实验信息自动记录的一般实现方法。  由于需要记录当前系统下所有应用程序的键盘录入记录,因此必须采取某种特殊的技术来实现本进程(监视程序)对外部进程键盘操作信息的获取。这种技术便是本文将要论述的核心–系统全局钩子。本文下面将对Win32平台下全局钩子的运行机制进行介绍并给出了一个具体的由VC 6.0编写的捕获键盘动作的键盘钩子示例程序。   系统钩子和DLL  钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统。钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。  在本程序中我们需要捕获在任意窗口上的键盘输入,这就需要采用全局钩子以便拦截整个系统的消息,而全局钩子函数必须以DLL(动态连接库)为载体进行封装,VC6中有三种形式的MFC DLL可供选择,即Regular statically linked to MFC DLL(标准静态链接MFC DLL)、Regular using the shared MFC DLL(标准动态链接MFC DLL)以及Extension MFC DLL(扩展MFC DLL)。 在本程序中为方便起见采用了标准静态连接MFC DLL。  键盘钩子程序示例  本示例程序用到全局钩子函数,程序分两部分:可执行程序KeyKook和动态连接库LaunchDLL。首先创建一个MFC AppWizard(DLL)工程,并选择Regular statically linked to MFC DLL(标准静态链接MFC DLL)选项,以建立MFC扩展动态连接库LaunchDLL.dll。之后,在相应的头文件中添加宏定义和待导出函数的声明:

    01

    30w代码量大学生总结编程学习心得就是一个字:练,尤其是C与C+

    浏览自己的过去, 现在主要从编程开发的角度,总结自己的学习路线。由于课程的安排,大一上学期学习C语言,大一下学期学习数据结构与算法;大二上学期学习C++基础知识和MFC开发;大二下学期学习JAVA;大三上学期学习80x86汇编。这就是大学四年所学的编程课程,按部就班地跟着课程学习,我不是一个天分很高的人,但却是一个很努力的人。如果遇到不懂的知识,我只会机械地反复看,反复练习。细细想想,感觉学习编程开发就需要这样的一种坚持不懈的品质。不是说机械学习,而是对一个知识亲自动手反复实现理解。学了MFC的课程之后

    08
    领券