easy-size控件自适应大小的使用

1.在 stdafx.h 头文件中添加

#include "EasySize.h"

在对话框中的OnInitDialog()函数中不能设置对话框大小和位置的信息,如

// 对话框窗口大小初始化
:: SetWindowPos( this-> m_hWnd, HWND_BOTTOM, 10, 10, 1000, 730, SWP_NOZORDER);

如果设置了需要将其注释掉,不然会导致控件不显示

2.在对话框定义类中添加

class CTestDlg : public CDialogEx
{
    DECLARE_EASYSIZE
    // 构造
    public:
    CTestDlg(CWnd* pParent = NULL); // 标准构造函数
    ...//后面的内容省略
}

3.使用类向导添加 onsize()和onsizing()消息函数

afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);

4.在对话框的OnInitDialog()函数中的末尾添加

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

5.在onsize()和onsizing()函数中添加

void CMFCApplication2Dlg::OnSize(UINT nType, int cx, int cy)
{
    CDialogEx::OnSize(nType, cx, cy);
    UPDATE_EASYSIZE;
}
void CMFCApplication2Dlg::OnSizing(UINT fwSide, LPRECT pRect)
{
    CDialogEx::OnSizing(fwSide, pRect);
    EASYSIZE_MINSIZE(280, 250, fwSide, pRect);
}

6.在对话框的cpp文件中添加easy-size的宏映射

BEGIN_EASYSIZE_MAP(CMFCApplication2Dlg)
    EASYSIZE(IDOK, ES_KEEPSIZE, ES_KEEPSIZE, ES_BORDER, ES_BORDER, 0)
    EASYSIZE(IDCANCEL, ES_BORDER, ES_BORDER, ES_KEEPSIZE, ES_BORDER, 0)
    EASYSIZE(IDC_BUTTON1, ES_BORDER, ES_BORDER, ES_KEEPSIZE, ES_KEEPSIZE, 0)
END_EASYSIZE_MAP

这里需要解释的是宏EASYSIZE()的用法,其原型如下:

EASYSIZE(control,left,top,right,bottom,options)

该宏表示对ID值为control的控件实施缩放效果,缩放后的上下左右位置由control,left,top,right,bottom来确定,大小由option确定。
ES_BORDER:表示与边框的距离不变
ES_KEEPSIZE:控件的相应边的大小不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值