MFC对话框下的菜单使用setCheck

 

 

 

// MFCTestDlg.h : 头文件

//

 

#pragma once

 

 

// CMFCTestDlg 对话框

class CMFCTestDlg : public CDialog

{

// 构造

public:

CMFCTestDlg(CWnd* pParent = NULL); // 标准构造函数

 

// 对话框数据

enum { IDD = IDD_MFCTEST_DIALOG };

 

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

 

 

// 实现

protected:

HICON m_hIcon;

 

// 生成的消息映射函数

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

 

DECLARE_MESSAGE_MAP()

 

 

/*****************新添加部分**********************/

private:

BOOL m_bMute;


CMenu*     pMainMenu;

CMenu*     pSubMenu;



afx_msg void OnControlMute();

 

/*****************end新添加部分**********************/

};

 

 

 

 

然后再到CMFCTestDlg.cpp文件里的OnInitDialog加上

 

// CMFCTestDlg 消息处理程序

 

BOOL CMFCTestDlg::OnInitDialog()

{

CDialog::OnInitDialog();

 

// 将“关于...”菜单项添加到系统菜单中。

 

// IDM_ABOUTBOX 必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

 

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

 

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动

//  执行此操作

SetIcon(m_hIcon, TRUE); // 设置大图标

SetIcon(m_hIcon, FALSE); // 设置小图标

 

// TODO: 在此添加额外的初始化代码

 

/*****************新添加部分**********************/

 

 

pMainMenu     =      new   CMenu;

pMainMenu->LoadMenuA(IDR_MENU1);  //  IDR_MENU1为菜单ID

 

pSubMenu     =     NULL;    

pSubMenu     =  pMainMenu->GetSubMenu(0); 

SetMenu(pMainMenu);

 

 

/*****************end新添加部分**********************/

return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

 

}

 

BEGIN_MESSAGE_MAP(CMFCTestDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
 
//}}AFX_MSG_MAP
/*****************新添加部分**********************/
ON_COMMAND(ID_CONTROL_MUTE, &CMFCTestDlg::OnControlMute)
/*****************end新添加部分**********************/
END_MESSAGE_MAP()
/*****************新添加部分**********************/
void CMFCTestDlg::OnControlMute()
{
// TODO: 在此添加命令处理程序代码
m_bMute=!m_bMute;
pSubMenu->CheckMenuItem(ID_CONTROL_MUTE,m_bMute?MF_CHECKED:MF_UNCHECKED);    
}
/*****************end新添加部分**********************/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值