本文源码下载:
http://d.download.csdn.net/down/3143819/zxhx
导读:本文是VC++ Datagrid应用实例详解系列的第二讲-筛选查询。
本文的feature:
1) 在系列(1)的基础上添加了Date Time Picker组件,并利用该组件+按钮实现DataGrid数据查询;
2) 简单介绍了Date Time Picker的用法;
3) 简单介绍了在按钮组件的OnClick事件中接收其他组件变量及更新变量的基本流程。
前文(1)补遗:
1) 数据源绑定的设置方法:在Data Control组件中设置好数据源后,右键DataGrid组件,选择”Properties”,点击属性页右上角的三角箭头,拉到“All”标签页,找到Data Source属性,在下拉列表框中选择“IDC ADODC1”,如下图:
2) 有关vc6.0的补丁:使用上述控件最好是打上vc6.0 sp6补丁后再执行。
正文:
在对话框窗体上添加Date Time Picker组件,并添加两个按钮,对按钮的Caption进行设置,分别为”查询”和”全部显示”。
对Date Time Picker控件点击右键,设置控件的成员变量,类型选择CDateTimeCtrl,变量名为m_DtCtrl,基本用法与DataGrid差不多,也是设置成员变量。
在DBGridDemoDlg.cpp文件中添加代码:
1) 对话框初始化函数中新增一列,并添加日期列的代码,按前文(1)介绍的方法进行即可,在此不再赘述。
2) 对查询按钮添加OnClick事件如下:
针对以上代码,在此特别介绍一下UpdateData()函数的用法:
UpdateData(TRUE):获得控件当前的数据
UpdateData(FALSE):更新控件中的数据
如:一个edit控件设置变量为m_text,strText为控件中的一个变量,定义为:
CString strText;
UpdateData(TRUE);
strText = m_text;
表示:只有在调用了UpdateData(TRUE)后,才能获得控件的当前输入值(若没输入则为默认值),否则strText还是上次赋予的值(若没有则显示其默认值)。
若在m_text中输入一个值,再UpdateData(FALSE),则表示:
控件m_text接收输入的值,如果没有UpdateData(FALSE),则该控件依然显示原先的值。
另外再简单说明一下上面Format()函数的参数的含义:
vTime.Format("%Y-%m-%d");
其中:第一个参数”Y”表示4位的年(如:2011),如果为”y”则只取后两位(如:11),第二个参数”m”表示2位的月(如:03),此处大小写显示的结果相同,第三个参数”d”必须为小写,表示2为的日,改为大写则不显示。
另外,需要注意一下CTime与CString之间的转换,参考上面的代码即可。
按上面的设计,查询完毕后,无法显示所有数据,所以在此增加了显示全部数据的按钮,代码如下:
如果希望看到所有数据,可以点击该按钮。
运行效果如下:
本系列(3)待续。