MFC控件的创建和布局(含ToolBar)

1.创建控件

void ThkabcDlg::CreateCtrl()
{
	if (m_Layout.GetSafeHwnd())
	{
		return;
	}
	m_Layout.Create(this, 0);
	ThkCtrlCrtHelper helper;
	helper.SetParent(this);

	helper.Create(m_staWeldMdlName, THKWELD_IDC_MDLNAME, "abc");
	helper.Create(m_edWeldMdlName, THKWELD_IDC_ED_NAME);
	helper.Create(m_btnSelWeldMdl, THKWELD_IDC_MAP_SEL, "abc");
	m_btnSelWeldMdl.SetType(ThkScBmpBtn::BMP_SEL);
	helper.Create(m_staWeldTpl, THKWELD_IDC_TPL,"abc");
	helper.Create(m_edWeldTpl,THKWELD_IDC_ED_TPL);
	helper.Create(m_btnOpenWeldTpl,THKWELD_IDC_MAP_OPEN,"abc");
	m_btnOpenWeldTpl.SetType(ThkScBmpBtn::BMP_OPEN);
	helper.Create(m_staRules,THKWELD_IDC_RULES,"abc");
	helper.Create(m_edRules,THKWELD_IDC_ED_RULES);
	helper.Create(m_btnRules,THKWELD_IDC_MAP_RELES,"abc");
	unsigned int s = m_btnRules.GetButtonStyle();
	s = s | BS_OWNERDRAW;
	m_btnRules.SetButtonStyle(s, false);
	m_btnRules.LoadBitmaps(IDB_BITMAP_QUESTIONMASK);
	helper.Create(m_WeldList,THKWELD_IDC_LIST);



	ThkToolTipEx* pToolTip = new ThkToolTipEx;
	m_ToolBar.SetToolbarTip(pToolTip);
	m_ToolBar.SetImage(IDB_BITMAP_TOOLBAR, 20, 20, RGB(255, 255, 255));
	m_ToolBar.Create(CPoint(0, 0), &m_Layout);
	m_ToolBar.SetEdge(0);
	InitToolBar();
}

2.界面布局

void ThkabcDlg::AdjustLayout()
{
	//水平
	ThkWndCtScale* pTop1 = new ThkWndCtScale;
	pTop1->SetType(THKWNDCT::CT_HORIZ);
	pTop1->AddBlank(3);
	pTop1->AddLabel(&m_staWeldMdlName, 70, true);
	pTop1->AddBlank(1);
	pTop1->AddWnd(&m_edWeldMdlName, 200,true);
	pTop1->AddBlank(2);
	pTop1->AddWnd(&m_btnSelWeldMdl, 27, true);
	pTop1->AddBlank(10);
	pTop1->AddLabel(&m_staWeldTpl, 70, true);
	pTop1->AddBlank(1);
	pTop1->AddWnd(&m_edWeldTpl, 200);
	pTop1->AddBlank(2);
	pTop1->AddWnd(&m_btnOpenWeldTpl, 27, true);
	pTop1->AddBlank(10);


	ThkWndCtScale* pTop2 = new ThkWndCtScale;
	pTop2->SetType(THKWNDCT::CT_HORIZ);
	pTop2->AddBlank(3);
	pTop2->AddLabel(&m_staRules, 70, true);
	pTop2->AddBlank(1);
	pTop2->AddWnd(&m_edRules, 200,true);
	pTop2->AddBlank(2);
	pTop2->AddWnd(&m_btnRules, 27, true);
	pTop2->AddBlank(70,false);

	ThkWndCtScale* pTop3 = new ThkWndCtScale;
	pTop3->SetType(THKWNDCT::CT_HORIZ);
	pTop3->AddBlank(3);
	pTop3->AddWnd(&m_WeldList, 200);
	pTop3->AddBlank(3);
	pTop3->AddContainer(new ThkWndContainer(&m_ToolBar, 0, 20, 0, 0), 30, true);
	pTop3->AddBlank(1);
	
	//垂直
	ThkWndCtScale* pMain = new ThkWndCtScale;
	pMain->SetType(THKWNDCT::CT_VERT);
	pMain->AddBlank(2);
	pMain->AddContainer(pTop1, 27, true);
	pMain->AddBlank(3);
	pMain->AddContainer(pTop2,27,true);
	pMain->AddBlank(3);
	pMain->AddContainer(pTop3, 300);

	m_Layout.SetContainer(pMain);
	m_Layout.AdjustLayout();
	
}

3.ToolBar

3.1(定义)

void ThkabcDlg::InitToolBar()
{
	int nToolBarId[] = {
		CMD_ASSEMBLE,
		-1,
		CMD_APPOINT,
		-1,
		CMD_REVERSE,
		-1,
		CMD_DELETE,
		-1,
		CMD_REFRESH,
	};

	const int nNum = ARRAYSIZE(nToolBarId);
	int nImgId[] = {
	    iMg_ASSEMBLE ,
		-1,
		iMg_APPOINT,
		-1,
		iMg_REVERSE,
		-1,
		iMg_DELETE,
		-1,
		iMg_REFRESH,
	};

	CString strDepict[nNum] = {
		_T("装配"),
		NULL,
		_T("指定"),
		NULL,
		_T("反向"),
		NULL,
		_T("删除"),
		NULL,
		_T("刷新"),
	};

	CString strDetail[nNum] = {
		_T("abc"),
		NULL,
		_T("abc"),
		NULL,
		_T("abc"),
		NULL,
		_T("abc"),
		NULL,
		_T("abc"),
	};
	m_ToolBar.AddButtons(nToolBarId, nImgId, nNum, strDepict, strDetail);
	m_ToolBar.AdjustLayout();
}

3.2(声明)

 enum eCtrlID
    {
        THKWELD_IDC_LIST=200,
        THKWELD_IDC_MDLNAME,
        THKWELD_IDC_TPL,
        THKWELD_IDC_RULES,
        THKWELD_IDC_ED_NAME,
        THKWELD_IDC_ED_TPL,
        THKWELD_IDC_ED_RULES,
        THKWELD_IDC_MAP_RELES,
        THKWELD_IDC_MAP_SEL,
        THKWELD_IDC_MAP_OPEN,
    };
    enum eCMDID {
		CMD_ASSEMBLE=100,
		CMD_APPOINT,
		CMD_REVERSE,
		CMD_DELETE,
		CMD_REFRESH,
    };
	enum eiMageID {
		iMg_ASSEMBLE = 0,
		iMg_APPOINT,
		iMg_REVERSE,
		iMg_DELETE,
		iMg_REFRESH,
	};  

4.设计按钮类型(图片类型)

 ThkScBmpBtn m_btnSelWeldMdl;
m_btnSelWeldMdl.SetType(ThkScBmpBtn::BMP_SEL);

5.按钮设置图片

CBitmapButton m_btnRules;
	unsigned int s = m_btnRules.GetButtonStyle();
	s = s | BS_OWNERDRAW;
	m_btnRules.SetButtonStyle(s, false);
	m_btnRules.LoadBitmaps(IDB_BITMAP_QUESTIONMASK);

6.Toolbar设置图片


	ThkToolTipEx* pToolTip = new ThkToolTipEx;
	m_ToolBar.SetToolbarTip(pToolTip);
	m_ToolBar.SetImage(IDB_BITMAP_TOOLBAR, 20, 20, RGB(255, 255, 255));
	m_ToolBar.Create(CPoint(0, 0), &m_Layout);
	m_ToolBar.SetEdge(0);
void ThkabcDlg::InitToolBar()
{
	int nToolBarId[] = {
		CMD_ASSEMBLE,
		-1,
		CMD_APPOINT,
		-1,
		CMD_REVERSE,
		-1,
		CMD_DELETE,
		-1,
		CMD_REFRESH,
	};

	const int nNum = ARRAYSIZE(nToolBarId);
	int nImgId[] = {
	    iMg_ASSEMBLE ,
		-1,
		iMg_APPOINT,
		-1,
		iMg_REVERSE,
		-1,
		iMg_DELETE,
		-1,
		iMg_REFRESH,
	};

	CString strDepict[nNum] = {
		_T("装配"),
		NULL,
		_T("指定"),
		NULL,
		_T("反向"),
		NULL,
		_T("删除"),
		NULL,
		_T("刷新"),
	};

	CString strDetail[nNum] = {
		_T("根据坐标系进行装配"),
		NULL,
		_T("模型快速完成界面中的定位"),
		NULL,
		_T("焊缝模型反向,起终点反向"),
		NULL,
		_T("将模型进行删除"),
		NULL,
		_T("焊缝模型名称编号刷新和参数写入"),
	};
	m_ToolBar.AddButtons(nToolBarId, nImgId, nNum, strDepict, strDetail);
	m_ToolBar.AdjustLayout();
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行为艺术家Zzz

新人 求鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值