VS简易示波器(二):自制子属性窗

我们通常在设计中会用到一些控件,但有时控件太多,就会影响界面的美观、简洁,因此,会使用一些属性窗,较多做法是使用基于CPropertyPage和CPropertySheet属性页来创建,再通过DoModal()打开,但其为模态对话框,使用起来不太灵活,还因一些自带的控件影响美观等。本篇基于对话框类自制属性窗:

1) 资源视图->Dialog->添加资源->新建,添加控件并调整布局;

2) 项目->类向导->添加类(MFC类),填写类名(如:CCtrlSetDlg),基类选择CDialog,对话框选择新建对话框的ID号;

3) 主对话框的.h文件中包含新对话框的.h头文件,并添加代码:

CCtrlSetDlg*m_CtrlSetDlg;                     //子对话框变量

BOOLCreateCtrlSetDlg();                 //子对话框创建函数

BOOL isCtrlOn= false;

4) 添加子对话框创建函数CreateCtrlSetDlg()代码:

if(m_CtrlSetDlg == NULL){

m_CtrlSetDlg =new CCtrlSetDlg;

m_CtrlSetDlg->Create((LPCTSTR)CCtrlSetDlg::IDD,this);

 

if(m_CtrlSetDlg == NULL)

return false;

//调整子对话框位置

CRectrectParent;

CRect rect;

 

GetWindowRect(&rectParent);

rect.top =rectParent.top;

rect.left =rectParent.right - 6;

rect.bottom =rectParent.top + 570;

rect.right =rect.left + 220;

m_CtrlSetDlg->MoveWindow(&rect,TRUE);

return true;

}

else{

return true;

}

5) 添加控制按钮及响应函数代码:

if (CreateCtrlSetDlg()){

        if (isCtrlOn){

               isCtrlOn = false;

               m_CtrlSetDlg->ShowWindow(SW_HIDE);    //隐藏对话框

               m_btnCtrl.SetWindowTextW(L"CTRL>>");

        }

        else{

               isCtrlOn = true;

               m_CtrlSetDlg->ShowWindow(SW_SHOW);    //显示对话框

               m_btnCtrl.SetWindowTextW(L"CTRL<<");

        }

}

6) 添加OnClose()函数并添加代码:

deletem_CtrlSetDlg;

7)实现效果:点击按钮显示/隐藏子对话框。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值