Menu

[MFC]传统控件介绍、CButton按钮类

0 Comment

1. 把持想法:

    1) 小器具是一点钟特别的窗口类。,像一点钟按钮、版本框等,用于向用户发送新闻或获取用户输出。;

    2) 小器具是高级的封装的靶子。,有本人的WMX内幕音讯处置行为准则,不用由用户本人重行绘制小器具。;

    3) 把持音讯机制:当点击把持和依此类推开刀发生时,用户不用处置这些鼠标音讯。,MFC会处置这些最根本的小器具上的音讯并将其转变为“环行的”(Notify),比如,单击按钮用不着用户处置BU。,相反,MFC将此音讯替换为BNX点击环行的。,此后,用户只理由对OnButnCutLink有或起作用停止答辩。;

!!环行的音讯:

        a. 普通普通音讯,如WM_LBUTTONDOWN、WMY绘画作品等都是根本新闻,这些音讯最接近的答辩朝某一方向前进音讯的事情。;

        b. 环行的音讯是一种特别的Windows音讯。,它首要来自于把持。,憎恨朝某一方向前进器环行的是少量的根本音讯,如钮扣等,话虽这样说Windows将它们替换成小器具收回的环行的。,环行的音讯最接近的对朝某一方向前进CONT的事情作出反应性。;

    4) 小器具通常使牢固在依此类推窗口上。,如此小器具是依此类推窗口的子窗口。,因而小器具间或亦转学窗口小器具。:

         i. 父窗口革囊小器具尾随;

        二。 天父的窗户先前被摧残,把持权将被摧残。;

        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) 预备小器具亦简略的,你只理由先预备一点钟靶子,此后转学靶子的预备有或起作用。,学期怀孕在小器具中有少量的拉长说形式,CCREATEX用于预备具有拉长说形式的小器具。;

3. C按钮类简介:

    1) MFC达到目标按钮代表普通意思上的按钮。,何止表现普通的每况愈下支配权按钮,还表现复选框、单盒和群框的三发生型;

    2) 决定博狗官网的编号:只理由在Create或CreateEx的dwStyle中同意进入一点钟就能决定按钮的类型了,它们都应用BSI作为前缀。,换句话说,Button 时髦的缩写

BS_PUSHBUTTON:最经用的基准按钮

BS_DEFPUSHBUTTON:默许按钮,在基准压力按钮的依据,可以委派归还电键。

BS_CHECKBOX:流通时间复选框

BS_AUTOCHECKBOX:天然发生的复选框,普通复选框被点击时理由在答辩有或起作用中显示转学SetCheck来变老复选框的意味着财产,天然发生的复选框用不着,自己人这些都是由MFC天然发生的创造的。,因而天然发生的复选框应用更多

BS_3STATE:3财产复选框,有选择、未选择和不决定的三态

BS_AUTO3STATE:天然发生的3财产复选框,可以在三个州中锋天然发生的切换,与BSU-AutoCu复箱平均,用不着显示到SetCheck的转学。

BS_RADIOBUTON:普通用不用电线的波传送的以电话传送

BS_AUTORADIOBUTTON:天然发生的用不用电线的波传送的电箱,您可以天然发生的选择本人并移动依此类推电台的选择。,而普通用不用电线的波传送的以电话传送都理由在答辩有或起作用中显示转学SetCheck来选中本人并移动居民

BS_GROUPBOX:使成群框控制项

    3) 用于决定按钮边线的版本使结盟的编号:亦BSH的头,可以添加到预备或预备的DWS形式

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);

!DWSstyle可以表现本人作风的按钮(BSH头形式),话虽这样说由于小器具亦一点钟窗口,如此,您也可以添加普通窗口的形式(应用WSI担任主角)

!WS_CHILD:预示小器具是子窗口。,用于委派四分之一的参量

!WS_VISIBLE:预示预备小器具是可见的。,学期不添加该形式,直到转学从前才干牧座它。

!由于小器具是种子窗口,如此,当您命名小器具时,通常应用MyWND作为前缀。!!!!

5. 音讯机制:

    1) 先前说过,MFC将小器具上的音讯包装成环行的发用无线电波发送子窗口;

    2) 以BSH按钮为例,按钮给其父窗口发送一点钟封装在WM_COMMAND音讯达到目标BN_CLICKED环行的,确实,它发送WMX命令音讯。;

    3) 环行的BNY点击保在WPARAM的高16位。,朝某一方向前进音讯的把持ID保在WPA的低16位。,LParam保持原状子窗口小器具的窗口句柄。;

    4) 但通常,运用用不着最接近的处置WMX命令。,由于MFC提议了“环行的到处置有或起作用“的映照,比如,按下按钮的ONYBNY点击(CTRLID), 句柄),进入CtrlID是把持ID,这是它本人的名字。,句柄是音讯处置器,朝着自己人类型的小器具,无论如何是按钮剧照列表框,依此类推。,音讯处置有或起作用的名声都这是它本人的名字。,由于窗口可以表现同样地类型的多个小器具。,学期想为每个同样地类型的小器具预备有区别的的音讯处置有或起作用亦一点钟再正规军不外的需要,如此句柄的名声可以是任性的。!!

    5) 比如:

ON_BN_CLICKED(IDC_BUTTON, OnButtonClicked)

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

6. 复选框的意味着财产:

    1) 无论如何哪发生型的复选框,都应用SETCHECK来设置所选财产。;

    2) SetCheck:

         i. 蓝本:void CButton::SetCheck(int nCheck);

        二。 有三种可选择的财产可以被设置。,全凭BST,换句话说,Button 公务的的缩写

BST_CHECKED:选中

BST_CHECKED:未选中

BST_INDETERMINATE:不决定财产,仅在三态的作风中

!!在3财产复选框中,当用户点击了介绍被选达到目标复选框时就会留长不决定财产(表现一点钟灰化了的复选框),或最接近的转学SETCHECK设置不决定财产;

!!不决定性既责备完整必然的,也责备完整不承认的。,比如,在字处置器中,胆大妄为和胆大妄为的复选框将是不决定的财产。;

    3) 应用GETCHECK获取复选框的介绍意味着财产:

         i. 蓝本:int CButton::GetCheck() const;

        二。 归还值或三个选择财产,BSTH头的三种财产;

    4) 天然发生的切换财产:

         i. 具有天然发生的形式的复选框可以天然发生的切换意味着财产,省掉创造OnCuthBox点击答辩有或起作用,MFC隐式天然发生的创造;

        二。 学期埋怨天然发生的形式复选框,手工操作创造财产关闭电流的追逐是理由的。:

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

7. 单选按钮的独占度:

    1) 单选按钮是用不用电线的波传送的电按钮形式。,当选择组达到目标单选按钮时,同一点钟GR的依此类推按钮被选中。;

    2) 非天然发生的形式的单按钮按钮,独占度理由手工操作进行辩护:

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

!嗨按名落孙山一点钟按钮,因而依此类推三个按钮自愿移动选择。;

    3) 学期应用天然发生的辐射状按钮,公用进行辩护将由MFC天然发生的创造。,不用显示音讯答辩效能的创造,但有必然的学期使MFC天然发生的进行辩护:

         i. 率先,理由对单选按钮停止使成群。,咱们不得已让MFC赚得这些单选按钮是同一组。,这执意你在同一组中所能做的。;

        二。 率先,一点钟一点钟地预备一组单选按钮。,缺勤依此类推小器具可以拔出中锋。;

        III. 其次不得已在改建的第一点钟预备的按钮的Create中用WS_GROUP来邮票改建的开端(OR到dwStyle中去);

        IV。 学期构成释义了一组单选按钮,话虽这样说接下来咱们理由构成释义依此类推小器具或一组有区别的的单选按钮。,则不得已前面构成释义的第一点钟小器具的Create中OR上一点钟WS_GROUP邮票,在前一组完毕时,一组开端;

    4) 不得已为单选按钮设定初值:当预备一组单选按钮时,默许使气质于下不选择按钮。,但出于逻辑思索,话虽这样说按钮不得已有一点钟要选择,如此Create完后并鄙人一组小器具构成释义从前最好应用SetCheck设定初值选中进入一点钟按钮为好!!种植良好的气质!!

8. 使成群框控制项:

    1) 是BSG-GypBox形式的按钮小器具;

    2) 它全然在图中如被询问纠缠或强求一组带有可见轮廓的小器具。,其余者缺勤终结。,这全然视觉终结。;

    3) 它可以目镜地让用户赚得谁小器具是一点钟组。,这全然视觉扶助。;

    4) 它缺勤发生任何一个环行的,无法决定小器具的使成群。!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注