当前位置: 首页 > news >正文

MFC工控项目实例之八选择下拉菜单添加打钩图标

承接专栏《MFC工控项目实例之七点击下拉菜单弹出对话框》
具体添加菜单栏参考我的博客文章《MFC工控项目实例之七点击下拉菜单弹出对话框》
这里只给出相关代码
1、在SEAL_PRESSUREDlg.h文件中添加代码

class CSEAL_PRESSUREDlg : public CDialog
{
// Construction
public:...CBitmap m_bmSel,m_bmList;void OnTypeChange(UINT nID);...}

2、在SEAL_PRESSUREDlg.cpp文件中添加代码

BEGIN_MESSAGE_MAP(CSEAL_PRESSUREDlg, CDialog)//{{AFX_MSG_MAP(CSEAL_PRESSUREDlg)//}}AFX_MSG_MAPON_COMMAND_RANGE(ID_DEF_PRODUCT, ID_DEF_PRODUCT + 100, OnTypeChange)
END_MESSAGE_MAP()BOOL CSEAL_PRESSUREDlg::OnInitDialog()
{CDialog::OnInitDialog();...m_bmSel.LoadBitmap(IDB_BITMAP1);m_bmList.LoadBitmap(IDB_BITMAP2);m_menuType.LoadMenu(IDR_MENU1);	return TRUE;  // return TRUE  unless you set the focus to a control
}void CSEAL_PRESSUREDlg::OnTypeChange(UINT nID)
{theApp.m_nProductSel = nID - ID_DEF_PRODUCT+1;CWinApp* pApp = AfxGetApp();pApp->WriteProfileInt("参数","nProductSel1",theApp.m_nProductSel);}void CSEAL_PRESSUREDlg::OnTypChoice() 
{// TODO: Add your control notification handler code here
//	CTypDlg dlg;
//	dlg.DoModal();int	m_nActivePlace = 0;CRect rect;GetDlgItem(IDC_TYP_CHOICE)->GetWindowRect(&rect);while(m_menuType.GetSubMenu(0)->GetMenuItemCount() >2){m_menuType.GetSubMenu(0)->RemoveMenu(2,MF_BYPOSITION);}for(int i = 0 ; i < theApp.m_allPara.GetSize() -1; i ++){CString str;if(strlen(theApp.m_allPara[i + 1].m_strBrand) > 0)str.Format("%s(%s)",theApp.m_allPara[i + 1].m_strTypeName,theApp.m_allPara[i + 1].m_strBrand);elsestr.Format("%s",theApp.m_allPara[i + 1].m_strTypeName,theApp.m_allPara[i + 1].m_strBrand);m_menuType.GetSubMenu(0)->AppendMenu(MF_STRING,ID_DEF_PRODUCT + i,str);	m_menuType.GetSubMenu(0)->SetMenuItemBitmaps(ID_DEF_PRODUCT + i, MF_BYCOMMAND, &m_bmList,&m_bmSel);}CWinApp* pApp = AfxGetApp();int  m_nProductSel=pApp->GetProfileInt("参数","nProductSel1",0);		m_menuType.GetSubMenu(0)->CheckMenuItem(2 + m_nProductSel - 1,MF_CHECKED|MF_BYPOSITION);m_menuType.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON,rect.left,rect.bottom,this);
}

http://www.mrgr.cn/news/14534.html

相关文章:

  • BaseCTF-Web-Week2-WP
  • linux修改文件的修改时间
  • 三天吃透Java面试八股文
  • 从0到1框架搭建,Python+Pytest+Allure+Git+Jenkins接口自动化框架(超细整理)
  • 不同搜索引擎蜘蛛的功能、‌抓取策略与技术实现差异探究
  • ArrayList 和 LinkedList 的区别?
  • Android 11.0 关于定制自适应AdaptiveIconDrawable类型的动态时钟图标的功能实现系列一
  • Redis中事务与乐观锁
  • 设计模式之建造者模式
  • 在VB.net中,LINQ有什么方法与属性
  • 代码随想录算法训练营第三十天|452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间
  • Prometheus监控Kubernetes ETCD
  • 这款SpringBoot+Vue酒店管理系统,你绝对值得拥有
  • SpringBoot集成kafka-监听器注解
  • CARLA Drone: 首个实现从不同空中视角进行单目3D目标检测,并提供数据集
  • jvm监控工具一览
  • 【No module named ‘pcapy‘】报错解决方法
  • 公网信息泄露监测(网盘、暗网、搜索引擎、文档平台)思路分享
  • 设计模式之单例模式
  • 算法练习题01:月份天数