MFC 车牌识别 小学期作业 part3

part4 具体(2)增添变量 和消息处理函数

VS和VC编写MFC程序,都提供了可视化的,所见即所得的界面编辑方式,所有控件都可以从工具箱拖到编辑的窗口上去,那么这些控件与后台的变量,函数之间是如何关联在一起的呢?这是这一部分要解决的问题。

一个窗口,其上每一个控件都应该是有意义的,即与后台的数据之间是有联系的,对每一个控件,为了区分,我们需要跟他们一个ID,ID是必须互异的,他们的ID名因为资源类型不同,前缀通常有IDC ,IDB和IDD之分。

对每一个控件,右键,添加变量,就可以在这个窗口的类里为这个控件创建一个与其关联的变量。
细分的话,变量又分为值变量和控件变量,值变量,就是属于基本类型的变量,控件变量,就会创建一个对应控件的类的对象,其中包含了对控件的一系列的操作,比值变量的适用范围广得多。

对于按钮,我们不仅需要它有后台的变量,我们还希望点击它可以处理一些数据,产生一些变化,这就需要按钮与函数关联起来,这样的函数叫消息处理函数,编辑一个按钮的消息处理函数,只需双击按钮,编译器会自动跳转到后台的函数体里。

双击按钮,只可编辑按钮的单击事件,如果要编辑一个控件的右键的事件,双击的事件,按下鼠标的事件,鼠标中键的事件,就需要在类导向里自己筛选了。


PS:
以上操作,全部建立在上一个part里提到的已经建立了窗口的类的基础上,否则无法增加变量和函数。
DoDataExchange(CDataExchange* pDX)中就是控件通过ID与变量关联起来的一个表,一个对应一个。
BEGIN_MESSAGE_MAP(CchepaishibieDlg, CDialogEx)这个宏定义里,是按钮通过ID与消息处理函数之间关联的表。




part5 具体(3) 列表,进度条 按钮控件的使用


其实就是记一些成员函数的用法
以下函数,我也仅仅是查到,尝试用,有些细节我也不知道,大家交流吧。

//列表


1.列表插入表头
eg:myListControl.InsertColumn(0,L"第一列",LVCFMT_CENTER,100);
解释:用于设置表头
第一个参数:设置第几列的表头
第二个参数:表头名字
第三个参数:表头名放置的风格,居中,居右,居左等等
第四个参数:表头占的地方大小

PS:一般这个函数放在OnInitDialog()函数里,以便在窗口出现的时候列表表头就设置好。

2.列表插入项目
myListControl.InsertItem(0,L"项目1");
解释:用于设置列表的一行的第一列
第一个参数:设置第几行,从0计数
第二个参数:一行第一列显示的项目名

myListControl.SetItemText(0,1,L"项目1详细");
解释:用于设置列表的一行除第一列以外的列
第一个参数:设置第几行
第二个参数:设置第几列,从1计数
第三个参数:设置这一个列表格显示的内容

3.获得列表的总行数
myListControl.GetItemCount();
解释:返回值是总行数

4.获取选中行的位置
myListControl.GetFirstSelectedItemPosition();
解释:返回值是POSITION类对象,获得选中列表的一行的位置。

myListControl.GetNextSelectedItem(positoin)
解释:返回值是int型,列表中某一行的索引(是这么叫吗?就是第几行的意思)
参数:POSITION类对象,设置指定的列表的位置

5.删除选中行
myListControl.DeleteItem(Index);
解释:用于删除指定的行
参数:设置删除哪一行;

PS:上三个函数经常一起使用,用于删除列表中选定的行(我只用到这种方法)
eg:
POSITION ps;
int nIndex;
ps=m_liebiao.GetFirstSelectedItemPosition();
nIndex=m_liebiao.GetNextSelectedItem(ps);
m_liebiao.DeleteItem(nIndex);


//进度条


1.设置进度条变化范围
myProgressBarControl.SetRange(0,Max);
解释:用于设置进度条范围
第一个参数:设置最低值,不一定是0,但必须比第二个参数小。
第二个参数:设置最大值。

2.设置当前位置
myProgressBarControl.SetPos(2);
参数:当前位置,比最大值小或等于。

//按钮


1.设置按钮可按,不可按
myButton.EnableWindow(false);
解释:用于设置按钮是否可按
参数:true表示可按,false表示不可按
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值