液晶显示模拟程序
本程序是在Visual Stdio2009的环境下调试通过的,可能在VC6.0上无法打开。不过有些代码还是很有价值的。源码下载地址如下:界面如下图所示:
点击该图放大
应用编程
一.建立一个对话框的VC工程。将源码里的MatrixStatic.cpp和MatrixStatic.h拷贝至你的工程目录下。这两个文件是液晶显示控件的类。
二.将那两个文件拷贝至你的工程目录下之后并不意味着它们真正被加入了工程。如果你用的是VS2009的,应该安如下图所示的操作,即添加类。在下图所示中单击“现有项”后弹出一对话框选中刚才拷贝的文件即可。
点击该图放大
三.在你的对话框面板上添加一个Static Text控件。其ID号设置为IDC_LCDDisplay,(其实这个ID号可以任意设置无所谓)。给这个控件添加一个Control类型的变量。则在对话框头文件(我的例程里是DigitalDisplayDlg.h)应该可以找到这一行:
public: statsic m_lcdtest;//因为我设置的变量名称是m_lcdtest
将这行替换为:
public: CMatrixStatic m_lcdtest;
上面的工作完成之后,再添加其他控件。参照我的例程吧。
四.在DigitalDisplayDlg.h和DigitalDisplayDlg.cpp添加头文件包含语句:
#include "MatrixStatic.h"
在对话框的实现文件DigitalDisplayDlg.cpp的初始化函数BOOL CDigitalDisplayDlg::OnInitDialog()中对液晶显示控件进行初始化如下:
程序代码:
m_lcdtest.SetNumberOfLines(15);//设定行数 m_lcdtest.SetXCharsPerLine(47);//设定每行的字符个数 m_lcdtest.SetSize(CMatrixStatic::SMALL);//设定风格共三种可选TINY,SMALL,LARGE m_lcdtest.AdjustClientXToSize(47);//这两行匹配字符控件客户区的大小 m_lcdtest.AdjustClientYToSize(15); m_lcdtest.SetText(_T("Hello,Please test it!"));//设定要显示的字符 m_lcdtest.SetAutoPadding(true);//设定是否自动移动 m_lcdtest.DoScroll(700, CMatrixStatic::RIGHT);//前一个参数为移动的速度,后一个参数为方向,可以有四种选择即左右上下。
五.运行该程序,可以看到初步效果,还有一些功能可以参看例程。以下是每个按钮的单击响应函数:
程序代码:
void CDigitalDisplayDlg::OnBnClickedUpbtn()//向上运动模式 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); m_lcdtest.SetText(_T(" Hello,This is a UP-Running LCD screen!")); m_lcdtest.DoScroll(700,CMatrixStatic::UP); } void CDigitalDisplayDlg::OnBnClickedDownbtn()//向下运动模式 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); m_lcdtest.SetText(_T(" Hello,This is a DOWN-Running LCD screen!")); m_lcdtest.DoScroll(700,CMatrixStatic::DOWN); } void CDigitalDisplayDlg::OnBnClickedLeftbtn()//向左运动模式 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); m_lcdtest.SetText(_T(" Hello,This is a LEFT-Running LCD screen!")); m_lcdtest.DoScroll(700,CMatrixStatic::LEFT); } void CDigitalDisplayDlg::OnBnClickedRightbtn()//向右运动模式 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); m_lcdtest.SetText(_T(" Hello,This is a RIGHT-Running LCD screen!")); m_lcdtest.DoScroll(700,CMatrixStatic::RIGHT); } void CDigitalDisplayDlg::OnBnClickedStopbtn()//静止模式 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); } void CDigitalDisplayDlg::OnBnClickedButton6()//我的联系方式,呵呵 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); m_lcdtest.SetText(_T(" My Blog; http;//blog. University of Geosciences Class 062062 ")); m_lcdtest.DoScroll(700,CMatrixStatic::UP); } void CDigitalDisplayDlg::OnBnClickedColor1()//设置颜色方案一 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.SetDisplayColors(RGB(0, 0, 0), RGB(255, 60, 0), RGB(103, 30, 0)); } void CDigitalDisplayDlg::OnBnClickedColor2()//颜色方案二 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.SetDisplayColors(RGB(0, 0, 0), RGB(0, 255, 50), RGB(0, 103, 30)); } void CDigitalDisplayDlg::OnBnClickedColor3()//颜色方案三 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.SetDisplayColors(RGB(165, 181, 66), RGB(0, 0, 0), RGB(148, 156, 66)); } void CDigitalDisplayDlg::OnBnClickedExit()//退出程序 { // TODO: 在此添加控件通知处理程序代码 m_lcdtest.StopScroll(); OnOK(); }