C++ wxWidgets界面各类功能

一、创建窗口

class ThkPartSrfAnsDlg :
    public TcrDialogBase
{
public:
	ThkPartSrfAnsDlg(wxWindow* parent = nullptr,
		wxWindowID id = wxID_ANY,
		const wxString& title = wxT("零件模型解析"),
		const wxPoint& pos = wxDefaultPosition,
		const wxSize& size = wxSize(800, 620),
		long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    ~ThkPartSrfAnsDlg();
}


ThkPartSrfAnsDlg::ThkPartSrfAnsDlg(wxWindow* parent /*= nullptr*/, wxWindowID id /*= wxID_ANY*/, const wxString& title /*= wxT("零件模型解析")*/, const wxPoint& pos /*= wxDefaultPosition*/, const wxSize& size /*= wxSize(800, 620)*/, long style /*= wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER*/)
{
	Create(parent, id, title, pos, wxSize(1000, 620), style);
}

二、弹窗wxMessageBox

	int result = wxMessageBox(wxT("确定删除选择的骨架(包括删除对等模型内已收集的轮廓赋值几何特征)?"), wxT("删除"), wxYES_NO | wxICON_QUESTION, this);

	if (result != wxYES)
		return;

三、弹出副窗口(模态)

ThkBom806MdlSet m_bomMdlSet;


void ThkStdBomTypeSetDlg::OnBnClickedBtnBorinf()
{
	// TODO: 在此添加控件通知处理程序代码
	ThkWndAutoChg wnd(GetTopThkWnd());
	ThkStdBomBorInfBtnDlg ClildDlg(m_bomMdlSet); //副窗口对象
	ClildDlg.DoModal();
}

构造:
public:
    ThkStdBomBorInfBtnDlg(ThkBom806MdlSet& BomSet);
    ~ThkStdBomBorInfBtnDlg();

ThkStdBomBorInfBtnDlg::ThkStdBomBorInfBtnDlg(ThkBom806MdlSet& BomSet)
	:m_BomSet(BomSet)
{
	m_InitialInfo.m_bResource = false;
	m_InitialInfo.Rect.SetRect(0, 0, 600, 400);
}

四、创建子窗口(Dialog)

void ThkPartSrfAnsDlg::OnBnClickBtnDetail(wxCommandEvent& event)
{
	ThkListIndex nIdx= m_List.GetFirstSelectedPos();
	if (nIdx)
	{
		ThkPartSrfAnsMdl* pComp = (ThkPartSrfAnsMdl*)m_List.GetItemDataPtr(nIdx);
		if (pComp == NULL)
		{
			return;
		}
		Show(false);
		if (m_pClildDlg)
			delete m_pClildDlg;
		m_pClildDlg = new ThkPrtSrfAnsChildDlg(this,pComp);
		 m_pClildDlg->Show();
		 m_pClildDlg->Bind(wxEVT_CLOSE_WINDOW, [this]( auto &event) {
			Show();
			m_pClildDlg->Destroy();
			});
	}
	else
	{
		Msg_OutInfo(_T("请选择要查看的零件"));
	}

}

class ThkPrtSrfAnsChildDlg :
    public TcrDialogBase
{
public:
    ThkPrtSrfAnsChildDlg(wxWindow* parent,ThkPartSrfAnsMdl* pMdl);
    ~ThkPrtSrfAnsChildDlg();


ThkPrtSrfAnsChildDlg::ThkPrtSrfAnsChildDlg(wxWindow* parent,ThkPartSrfAnsMdl* pMdl)
	:TcrDialogBase(parent), m_pMdl(pMdl)
{
	m_Tree.SetMinSize({ 30,30 });
	m_List.SetMinSize({ 30,30 });
	Create(nullptr, wxID_ANY, wxT("子界面的标题"), wxDefaultPosition, wxSize(500, 700), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);

	m_Tree.Bind(TbaEVT_DATAVIEW_ITEM_LCLK, &ThkPrtSrfAnsChildDlg::TreeClick, this);
	m_btnAdd.Bind(wxEVT_BUTTON, &ThkPrtSrfAnsChildDlg::OnBnClickBtnAdd, this);
	m_btnDel.Bind(wxEVT_BUTTON, &ThkPrtSrfAnsChildDlg::OnBnClickBtnDel, this);
	m_btnAnas.Bind(wxEVT_BUTTON, &ThkPrtSrfAnsChildDlg::OnBnClickBtnAnas, this);
	m_btnSave.Bind(wxEVT_BUTTON, &ThkPrtSrfAnsChildDlg::OnBnClickBtnSave, this);
	m_btnReturn.Bind(wxEVT_BUTTON, &ThkPrtSrfAnsChildDlg::OnBnClickBtnReturn, this);

	OnInitCtrl();
	OnInitWindow();
}

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

行为艺术家Zzz

新人 求鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值