CButtonST使用记录(mfc)
【摘要】 需求说明:收到一个改变单个checkbox控件大小的需求---老项目是mfc的---改变颜色和字体和按钮大小感觉都还行,改变checkbox的大小字体可以给放大 背景的选中和不选的图片却是没有变大------>于是使用了CButtonST这个实现有一点要说明:CButtonST的一般用法如下:m_btn.SubclassDlgItem(IDC_CHECK_xxx, this);将一个按钮子类...
需求说明:
收到一个改变单个checkbox控件大小的需求---老项目是mfc的
---改变颜色和字体和按钮大小感觉都还行,改变checkbox的大小字体可以给放大 背景的选中和不选的图片却是没有变大
------>于是使用了CButtonST这个实现
有一点要说明:
CButtonST的一般用法如下:
m_btn.SubclassDlgItem(IDC_CHECK_xxx, this);
将一个按钮子类化为CButtonST的实例,但是我这个项目里按钮本身已经自定义按钮类了,所以attach会报错;
说以我实际使用中的改动是让CButtonST继承于我项目中原来的按钮类,沿用原有按钮按钮的初始化部分,
然后在initDialog中
设置选择和不选的图片
((CButtonST*)GetDlgItem(IDC_CHECK_xxx ))->SetIcon(IDI_ICON_UN, IDI_ICON_SE); ((CButtonST*)GetDlgItem(IDC_CHECK_xxx ))->DrawTransparent(TRUE); ((CButtonST*)GetDlgItem(IDC_CHECK_xxx))->DrawBorder(false);
设置更大的字体
LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); lf.lfHeight = 200; // Request a 100-pixel-height font // DP and LP are always the same on CE - The conversion below is used by CFont::CreateFontIndirect HDC hDC = ::GetDC(NULL); lf.lfHeight = ::GetDeviceCaps(hDC, LOGPIXELSY) * lf.lfHeight; ::ReleaseDC(NULL, hDC); lf.lfHeight /= 720; // 72 points/inch, 10 decipoints/point if (lf.lfHeight > 0) lf.lfHeight *= -1; lstrcpy(lf.lfFaceName, _T("幼圆")); HFONT font = ::CreateFontIndirect(&lf); CWnd* myButton = GetDlgItem(IDC_CHECK_BST_CLASSD_EN); //The Button with regular font myButton->SendMessage(WM_SETFONT, (WPARAM)font, TRUE);
实际效果:
===>
按钮好像没有变大,这个是因为我导入的ico尺寸16*16,没找到系统默认的单选按钮资源的图片,自己截的图片ps的,但是感觉已经相对大了一些了;
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)