首页 就诊须知 来院路线 疾病概述 预防方法 术后护理
当前位置:主页 > 专家团队 > > 文章正文

VC MFC按钮(CButton)控件 | 天心软件工作室

发布于2017-07-20   浏览144次   评论0条  

按钮装饰品

1如安在按钮装饰品上显示图片

率先,决定要显示的图片典型。,在嗨,栩栩如生的ICO Icon,因你想在按钮上显示图标,因而塑造按钮装饰品的属性,

办法是右键单击按钮装饰品。,选择属性,单击款式选择能力卡,勾选图标上的项。。

因此大约按钮装饰品的人家变量,如:m_quit,典型是把持,在接近,无解说,典型是把持

按钮装饰品类(CButton)类里有个分子行使职责SetIcon可以设置按钮显示的图标,仅仅人家决定因素的行使职责,这是图标句柄。。

因此在对话框类的设定初值行使职责(CFirstDlg::OnInitDialog)添加如次判决:

((HICON)::LoadImage(空,”e:”,IMAGE_ICON,48,48,lr_loadfromfile));//是否有人家磁盘图标E

越过是人家图标发送从磁盘整枝,在起作用的LoadImage行使职责的运用,VC可以钞票经用功用以第二位十八功用。

二是理性ID整枝图标:

将图标从磁盘导入到突出中,是否此图标命名idi_icon1,故障出口的?

头等进入的资源观,右键单击图标,因此选择拔出,因此选择您愿望的图标。。

继,添加判决:

(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));

熟记,申报是在OnInitDialog预所相当编码,return 在真实;

2.当鼠标停留在按钮,显示指出要旨

上述的,是否您不意识到CO说得中肯按钮装饰品是什么。,在把持面板上的按钮,把鼠标,会有指出的。这么大约功用是若何成功的呢?成功。
率先在对话框类(CFirstDlg)里添加人家m_ToolTip类情人(public:政府的),如:CToolTipCtrl m_ToolTip;因此在对话框类里的OnInitDialog行使职责添加以下判决:
(这)
(&m_Quit,”主题要旨”);
在m_quit是按钮把持相关性变量
接下来,向对话框类添加人家沉默寡言的人行使职责,右击对话框类,选择添加 Virtual Function。因此双点取向左列表框PreTranslateMessage行使职责,将它添加到列表框的右翼,因此双点取PreTranslateMessage行使职责在右翼的列表框,因而咱们添加虚行使职责,大约沉默寡言的人行使职责有人家决定因素音讯 PMSG;谷氨酸一钠这种建筑物是在API行使职责阐明。。这执意大约行使职责的意思,大约行使职责会截获有发送到对应窗口的音讯。
将此判决添加到该行使职责中:(PMSG)
整件事是:
BOOL CFirstDlg::PreTranslateMessage(MSG* PMSG)
{
// TODO: Add your specialized code here and/or call the base class
(PMSG)
return CDialog::PreTranslateMessage(PMSG)
}
波湾阴谋下,运转,鼠标停留在相当的的按钮上。,看一下,有指出要旨吗?

3自绘制按钮装饰品

绘制按钮装饰品的规律很简略。,获取装饰品窗口的策略环境(dc)。,因此转移相当的的API移动行使职责来绘制装饰品t。,所相当API行使职责,可用于直流电巧妙地控制可以应用于,拿 ... 来说矩形(绘制矩形),BitBlt(图)等功用。。

率先,咱们出口的两个位图到突出,一张相片显示出达到,按下按钮(身份证号码:IDB_SELECT),另人家是显示正规军的图片(idb_normal)

两个位图:


咱们意识到,按钮把持对应的类是CButton,因而咱们要从大约类派生人家类。
对CButton的猜想办法是去ClassView tab,右键单击首次 Classes,选择New Class…,接下来,人家新的类对话框行为,称号是新类的称号。,嗨是cnewbutton类称号。Base 类(具体类)选择CButton,点决定。在大约时辰,首次 下有一cnewbutton班班,咱们来自某处按钮类的类(CButton)。
下一步,添加沉默寡言的人行使职责DrawItem CNewButton,添加虚行使职责办法在添加PreTranslateMessage虚行使职责的时辰曾经阐明过了。
此行使职责明确如次:
void CNewButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
lpDrawItemStruct是人家DRAWITEMSTRUCT建筑物帮助,网上搜集(重印)的建筑物绍介了。

在DrawItem字母编码如次:

// TODO: Add your code to draw the specified item
CDC dc;
(lpDrawItemStruct->hDC);//CDC类里的ATTACH行使职责用于把HDC替换成CDC
UINT state=lpDrawItemStruct->itemState;
立 ButtonRect;
GetClientRect(&ButtonRect);//转移按钮类里的GetWindowRect行使职责获取按钮区域一定尺寸的
CDC memDC;
直流电);//创办能共处的直流电
CBitmap bmp;
是否(陈述和ods_selected)//是否按钮被按下
{
(idb_select);//按整枝图片
}
else
{
(IDB_NORMAL);
}
BITMAP bmpInfo;
bmpinfo);//获取位图要旨
BMP);//选择的图片
(0,0,ButtonRect.right,ButtonRect.bottom,&memDC,
0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,srccopy);//显示图片
CString str;
GetWindowText(STR);//获取按钮的主题
(通明);/设置主题环境通明
(STR,&ButtonRect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);//输入按钮主题

();
();

();

接下来,咱们向对话框添加人家按钮。,协变量,在添加 Member 变量对话框。,Variable type栏里选择典型为CNewButton.并把按钮装饰品的款式设置为”有者绘制”

因此你包罗(导出按钮类的头发送)对话框说得中肯Cl:#include””

因此咱们波湾阴谋,运转,以下音响效果:

因咱们只处置两个按钮在顶部的保持健康,按下,和正规军保持健康,因而当按钮腰槽中锋时,或在其他陈述,无相当的的行为。。

标签:   转载请注明出处,否则将追究相关法律责任
收藏  转载
推荐专家团队:更多»
热门标签 :

Copyright © 2016-2017 威尼斯人网址 - 澳门威尼斯人官网 - 威尼斯人网上娱乐 版权所有