MFC控件使用方法(一-五(命令按钮控件,复选框按键,编辑控件,下拉框控件,列表框))

一、命令按钮控件(Button)

**作用:**命令按钮控件是常用的按钮控件之一,主要用来响应用户的鼠标单击操作。
消息映射函数:
映射入口 何时向父对象发送消息

  • ON_BN_CLICKED 用户单击按钮时
  • ON_BN_DOUBLECLICKED 用户双击按钮时

二、复选框按键(Check Box)。

作用:选择多个选项,让他们做相同操作,一般的复选框也是有选中和未选中两种状态。复选框的三个状态BST_UNCHECKED 时表示该复选框没有被选中、 BST_CHECKED 时表示该复选框被选中、 BST_INDETERMINATE 时表示不确定;
使用方法:
int state =((CButton )GetDlgItem(IDC_CHECK1))->GetCheck();
回去复选框的状态。返回值为复选框的状态
*((CButton )GetDlgItem(IDC_RADIO1))->SetCheck(BST_CHECKED);
设置复选框的状态。
2)使用 IsDlgButtonChecked(IDC_CHECK1))
函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
3)复选框CheckBox控件添加一个value控件类型的BOOL值变量
4)复选框CheckBox控件添加一个control控件类型的CButton值变量如:CButton m_m_chk1;

三、编辑控件

**作用 :**文字的编辑和显示
消息映射函数:

  • · ON_EN_CHANGE用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。编辑文本,当文本显示之后响应此函数
  • ON_EN_ERRSPACE 编辑控件不能为特定请求分配足够的空间
  • ON_EN_HSCROLL 用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。
  • ON_EN_KILLFOCUS 编辑控件失去输入焦点。
  • ON_EN_MAXTEXT 当前输入超过了为编辑控件指定的数目,并作截尾处理。当编辑控件不具有ON_EN_HSCROLL风格且要输入的字符会超过编辑控件的宽度时,发送消息。当编辑控件不具有ON_EN_VSCROLL风格且要输入的字符会超过编辑控件的高度时,也会发送消息。
  • ON_EN_SETFOCUS 编辑控件获得焦点。 当鼠标点击编辑控件时,响应此函数
  • ON_EN_UPDATE 编辑控件将要显示变动的文本。在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。
    使用方法:
    1、使用类向导建立控件和数据变量,通过控件或者数值变量操作编辑控件
    2、通过GetDlgItem(ID)函数获取控件的句柄,通过控件的句柄操作编辑控件

四、下拉框控件

作用:
通过下拉框控件可以在多个已知的选择条件中选择一个条件,和单选框作用相似,只不过可以通过软件添加选择条件。
消息映射函数:

  • ON_CBN_CLOSEUP (Windows3.1及更高版本)组合框的列表已被关闭。当组合框列表关闭之后,响应此函数。对于风格为CBS_SIMPLE的组合框来说,不会发送该通知消息
  • ON_CBN_DBCLICK 用户双击了列表框中的一个字符串。只对风格为CBS_SIMPLE的组合框发送。对于风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框来说,不会出现双击的消息,因为一次单击就会使下拉列表隐藏或显示了。
  • N_CBN_DROPDOWN 下拉出下拉列表(变为可见)。只对风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框起作用。
  • ON_CBN_EDITCHANGE 用户发出了一个可能改变编辑控件中文本的动作。与消息CBN_EDITUPDATE不同,本消息是在Windows刷新屏幕之后发出的。风格为CBS_DROPDOWNLIST的组合框没有该通知。
  • ON_CBN_EDITUPDATE 编辑控件部分将显示变化了的文本。本通知消息在控件已经格式化了文本但没有显示时发送。风格为CBS_DROPDOWNLIST的组合框没有该通知。
  • ON_CBN_ERRSPACE 不能为组合框分配足够的内存进行响应某个请求。
  • ON_CBN_SELENDCANCEL (Wndows 3.1及更高版本)表明用户的选择将被忽略。用户在单击了一个项之后,又单击了另外一个窗口或控件隐藏了组合框的下拉列表。此通知消息在CBN_CLOSEUP消息之前发送,以表明用户的选择将被忽略。即使没有发送CBN_CLOSEUP通知消息,也会发送CBN_SELENDCANCEL或CBN_SELENDOK消息(例如风格为CBS_SIMPLE的组合框)。
  • ON_CBN_SELENDOK
    用户在选择了一项以后,要么按了ENTER键,要么按了向下箭头键,从而隐藏了组合框的列表。此通知消息在CBN_CLOSEUP之前发送,表明用户的选择将不被认为是有效的。即使没有发送CBN_CLOSEUP通知消息,也会发送CBN_SELENDCANCEL或CBN_SEL-ENDOK消息(例如风格为CBS_SIMPLE的组合框)
  • ON_CBN_KILLFOCUS 组合框将失去输入焦点
  • ON_CBN_SELCHANGE 用户在列表中单击或者利用箭头键选择了另一个项,从而引起了选中项的改变。在处理此消息时,编辑控件中的文本只能通过GetLBText或者类似的某个函数存取。不能使用GetWindowText函数。
  • ON_CBN_SETFOCUS 组合框获得输入焦点。
    使用方法:
    1、使用类向导建立控件和数据变量,通过控件或者数值变量操作编辑控件(数值变量返回的是选中的字符串)
    2、通过GetDlgItem(ID)函数获取控件的句柄,通过控件的句柄操作编辑控件
    3、在获取到下拉框控件的变量之后,要向下拉框变量中添加下拉列表的值(可以在属性中的Data进行增加,或者在对话框初始化的时候通过控件变量调用AddString()函数添加)。
    4、添加NM_THEMECHANGED或ON_CBN_SELENDOK消息映射函数,获取当前下拉框选择的下拉元素。(一般情况都是在NM_THEMECHANGED函数中通过Switch来区分选中的元素,以便做不用的处理)

五、列表框

作用:
用于显示一组选择列表。ListBox只能包含文本项目,所有项目都使用同一个颜色。
消息映射函数:

  • ON_LBN_DBLCLK 用户双击列表框中的字符串。只有LBS_NOTIFY风格的列表框才会发送此通知消息。
  • ON_LBN_ERRSPACE 列表框不能重新分配足够的内存来满足请求。
  • ON_LBN_KILLFOCUS 列表框正失去输入焦点。
  • ON_LBN_SELCANCEL 当前列表框选择被取消。此消息只有在列表框是LBS_NOTIFY风格时才发送。
  • ON_LBN_SELCHANGE 列表框中的选择可能改变。如果选择被CListBox::SetCurSel成员函数改变,则通知不发送。此通知只适用于LBS_NOTIFY风格的列表框。无论何时用户按下箭头键,即使选择未改变,LBN_SELCHANGE通知消息都被发送给多选列表框。
  • ON_LBN_SETFOCUS 列表框正在接收输入焦点。
  • ON_WM_CHARTOITEM 一个无字符串的自绘制列表接受WM_CHAR消息。
  • ON_WM_VKEYTOITEM LBS_WANTKEYBOARDINPUT风格的列表框接受WM_KEYDOWN消息。

使用方法:
1、使用类向导建立控件和数据变量,通过控件或者数值变量操作编辑控件
2、通过GetDlgItem(ID)函数获取控件的句柄,通过控件的句柄操作编辑控件
3、在获取到列表框控件的变量之后,要向下拉框变量中添加下拉列表的值(在对话框初始化的时候或者其他需要添加的额地方通过控件变量调用InsertString()函数添加)
4、添加ON_LBN_SELCHANGE消息映射函数,获取当前列表框选择的列表框元素。

注:此篇文章是整合网上的资料和自己的使用总结,若有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值