[MFC]传统控件介绍、CButton按钮类
分类:联系我们 热度:

1. 把持构想:

    1) 限制是一类特别的窗口。,像任一按钮、倒转术框等,对用户或用户输出的输出;

    2) 限制是高音调的封装的情人。,有自行的wm_paint处置法典,用不着重绘限制由用户自行;

    3) 把持音讯机制:当单击限制和另一边手术产生时,用户不用处置这些鼠标音讯。,MFC会处置这些最根本的限制上的音讯并将其转变为“告发”(Notify),譬如,下扣的新闻,用不着用户处置日,相反,MFC将这音讯到bn_clicked告发,与,用户只必要恢复的onbuttonclicked效能;

!!告发音讯:

        a. 普通普通音讯,如WM_LBUTTONDOWN、wm_paint慢走都根本新闻,这些音讯直接的反应触发电器音讯的事情。;

        b. 告发音讯是一种特别的Windows音讯。,它次要来自于把持。,话虽这样说触发电器器告发是有些人根本音讯。,列举如下扣等,只Windows将它们替换成由限制收回的告发。,告发音讯直接的反应触发电器触发电器器的事情。;

    4) 限制通常安顿在另一边窗口上。,乃,限制是另一边窗口的子窗口。,乃,不时也称为窗口限制。:

         i. 父窗口将限制自己谋生到前面。;

        II。 父窗已被摧残,把持权将被摧残。;

        III. 这些举措是由mfc自动地执行的。;

2. 习俗的把持:

    1) Windows眼前用于20多个限制。,到站的6种为习俗的把持,这6种习俗的把持在Windows的第任一版本中就曾经呈现;

    2) 习俗的把持和实质性的的MFC类:限制类型从左到右部分、WNDCLASS登录名和MFC类

按钮   "BUTTON"   CButton

列表框   "LISTBOX"   CListBox

汇编限制   "EDIT"   CEdit

结成框   "COMBOBOX"   CComboBox

骨碌条   "SCROLLBAR"   CScrollBar

定态限制(定态倒转术等)   "STATIC"   CStatic

    3) 找到限制也很复杂。,您只必要先找到任一情人。,与调动情人的找到行使职责。,假定您想在限制中添加有些人伸开方法,应用CreateEx找到任一伸开的方法把持;

3. 类CButton简介:

    1) MFC击中要害按钮代表普通意思上的按钮。,不独收录普通如下坡一般按钮。,还收录任一复选框、单框和信息分类框控制项的三种类型;

    2) 决定按钮类型的认出。:只必要在Create或CreateEx的dwStyle中连接到站的任一就能决定按钮的类型了,他们都用bs_作为前缀,更确切地说,Button 使符合流行式样缩写

BS_PUSHBUTTON:最经用的基准按钮

BS_DEFPUSHBUTTON:默许按钮,在基准按钮的依据,还可以按下言归正传电键。

BS_CHECKBOX:普通的复选框

BS_AUTOCHECKBOX:自动地复选框,普通复选框被点击时必要在反应行使职责中显示调动SetCheck来方式复选框的选出而尚未上任的财产,而且用不着自动地复选框。,整个由mfc自动地执行。,因而自动地复选框应用更多

BS_3STATE:3财产复选框,有任一选择、未选择和不决定的三个州

BS_AUTO3STATE:自动地3财产复选框,能在三个财产暗中自动地切换,与bs_autocheckbox,不注意必要显示任一听筒到SetCheck

BS_RADIOBUTON:普通的接收机盒子

BS_AUTORADIOBUTTON:不用电线的自动地箱,您可以自动地选择自行并注销选择另一边电台。,而普通的接收机盒子都必要在反应行使职责中显示调动SetCheck来选中自行并注销别的

BS_GROUPBOX:信息分类框控制项

    3) 决定按钮外观倒转术表达的认出:这同样bs_的头,可以添加到找到的任一或CreateEx

BS_LEFTTEXT / BS_RIGHTBUTTON:向复选框和单框,倒转术近似按钮和右手。

BS_LEFT:左表达

BS_RIGHT:右表达

BS_CENTER:程度居中

BS_VCENTER:铅直居中

BS_TOP:居顶

BS_BOTTOM:居底

BS_MULTILINE:容许社交聚会被划分为两行或多行。

!!另一边方法罕见应用。,因而我不先绍介它。

4. 按钮的找到:

     1) 制造类型:

BOOL CButton::Create( // 言归正传值方针它可能的选择成。
	LPCTSTR lpszCaption, // 按钮的倒转术
	DWORD dwStyle, // 按钮的方法,像任一按钮类型、倒转术表达方法等
	const RECT& rect, // 按钮的巨大和父窗口击中要害为地方(以像素为单位)
	CWnd* pParentWnd, // 父窗口告发
	UINT nID // 限制的id,与菜项id两者都,必要原文的表达,它同样音讯陈述的根底。
)

    2) 任一类型的按钮找到进程:

CButton m_wndPushButton;
T(开端), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
	rect, this, IDC_BUTTON);

!任一可以收录方法的按钮自行(在BS的作风,但因把持同样任一窗口。,乃,您还可以添加普通窗口的方法(应用WS

!WS_CHILD:方针限制是子窗口。,用于任命第四音级参量

!WS_VISIBLE:方针限制找到为可见的。,假定方法拒绝评论,它将不可见,直到ShowWindow是CA

!因限制是种子窗口。,因而m_wnd通常被用来作为前缀命名时把持!!!!

5. 音讯机制:

    1) 先前某人说过。,将要发发出信息子窗口的限制上的MFC包装器音讯;

    2) 以bs_pushbutton为例,按钮给其父窗口发送任一封装在WM_COMMAND音讯击中要害BN_CLICKED告发,实际上,它将wm_command音讯;

    3) 指示bn_clicked在wParam的高16位保藏,触发电器器音讯的把持ID保藏在WPA的低位16位。,LParam保存的窗口句柄的子窗口限制;

    4) 但通常的敷用药用不着直接的处置wm_command,因MFC出价了对处置行使职责的告发陈述。,譬如,在按下按钮的on_bn_clicked(ctrlid, 处置),到站的CtrlID是任一把持ID,这是它自行的名字。,句柄是任一音讯处置器。,向承认类型的限制,无论是按钮或列表框等。,音讯处置行使职责的解释都这是它自行的名字。,因在得胜中可以收录姓一种两者都类型的限制。,假定想为分开两者都类型的限制预备意见分歧的音讯处置行使职责同样任一再标准的不外的必需品,乃句柄的解释可以是任性的。!!

    5) 譬如:

ON_BN_CLICKED(IDC_BUTTON, OnButtonClicked)

void CMainWindow::OnButtonClicked()
{
MessageBox(_t(我 been clicked!"));
}

6. 复选框的选出而尚未上任的财产:

    1) 不理是何种类型的复选框都是用SetCheck来设置选中财产;

    2) SetCheck:

         i. 类型:void CButton::SetCheck(int nCheck);

        II。 有三种可选择的财产可以设置。,承认与BST,更确切地说,Button 民族性缩写

BST_CHECKED:选中

BST_CHECKED:未选中

BST_INDETERMINATE:不决定财产,单独的在3state作风

!!在3财产复选框中,当用户点击了一般被选击中要害复选框时就会秋天不决定财产(收录任一灰化了的复选框),或许直接的打听筒给setcheck设定任一不决定的财产;

!!不决定的财产既过错完整必定的,也过错完整不决定的。,譬如,在字处置器中,复选框与控制的和粗糙的主要部分混合,是;

    3) 应用getcheck获取一般选中财产的复选框:

         i. 类型:int CButton::GetCheck() const;

        II。 言归正传值或三个选出而尚未上任的财产,三个州的bst_头;

    4) 自动地切换财产:

         i. 带有自动地方法的复选框可以自动地切换所选财产,用不着发生的oncheckboxclicked反应行使职责,mfc隐式自动地发生;

        II。 假定辩论自动地方法复选框,使负债务人工控制执行财产鞭打的进程。:

void CMainWindow::OnCheckBoxClicked()
{
	(() == 
		BST_CHECKED ? BST_UNCHECKED : BST_CHECKED);
}

7. 单选按钮的独家新闻:

    1) 单选按钮是按钮作风,当选择组击中要害任一单选按钮时,选择;

    2) 任一非自动地方法的按钮按钮。,独家新闻必要人工控制维修。:

void CMainWindow::OnRadioButton1Clicked()
{
	(BST_CHECKED);
	(BST_UNCHECKED);
	(BST_UNCHECKED);
	(BST_UNCHECKED);
}

!在在这一点上,第任一按钮被按下。,因而另一边三个按钮逼上梁山被选中。;

    3) 假定你应用autoradiobutton,独家维修将由MFC自动地执行。,不用显示音讯反应行使职责的发生,但它有有些人必需品使MFC自动地维修。:

         i. 率先,您必要信息分类单选按钮。,您必然要让MFC察觉这些单选按钮是两者都的一组按钮。,这执意你在同任一协同工作里所能做的。;

        II。 率先,任一接任一地找到一组单选按钮。,不克不及在心爱的拔出另一边限制。;

        III. 其次必然要在改编的第任一找到的按钮的Create中用WS_GROUP来帐单改编的开端(OR到dwStyle中去);

        四。 假定精确地解释了一组单选按钮,只,你必然要精确地解释另一边限制或另一组意见分歧的接收机。,则必然要前面精确地解释的第任一限制的Create中OR上任一WS_GROUP帐单,在前一组的终止,任一组开端。;

    4) 必然要为单选按钮设定初值:当找到一组单选按钮时,默许状况下不注意选择按钮。,但出于逻辑思索,只按钮必然要有任一被选中。,乃Create完后并鄙人一组限制精确地解释先于最好应用SetCheck设定初值选中到站的任一按钮为好!!栽培良好的习惯于!!

8. 信息分类框控制项:

    1) 是的bs_groupbox作风的按钮把持;

    2) 它实在任一图形,它收录一组具有可见轮廓的限制。,其余者的不注意胜利。,这实在视觉胜利。;

    3) 它可以让用户直观的地参观限制是什么集中。,实在任一视觉教具。;

    4) 它不注意收回无论什么告发。,无法决定限制的信息分类。!!

上一篇:收到监管函,公司也不发公告[亏大了][亏大了][亏大了][亏大了]_转发(zf)股吧 下一篇:没有了
猜你喜欢
各种观点
热门排行
精彩图文