工控编程吧
标题:
33上位机VC MFC实现虚拟键盘
[打印本页]
作者:
qq263946146
时间:
2015-11-27 21:29
标题:
33上位机VC MFC实现虚拟键盘
(, 下载次数: 3)
上传
点击文件名下载附件
33上位机VC MFC实现虚拟键盘
功能展示
有时我们为了需要,得自己设计一个虚拟键盘,如在触摸屏编程时就没有键盘输入。那么我们如何快速的设计一个自己的键盘呢?我们当前例程就简单快速的完成了。效果如图;
要点提示
要实现一个虚拟的键盘可以在界面上放置一些按钮,用于数据录入。当用户单击某个按钮时,编辑框中会显示相应的数据。程序中需要处理按钮的单击事件,将当前的文本显示在编辑框中。由于虚拟键盘得设计多个按钮,如果为每个按钮都设置一个单击事件函数,会很繁琐,如果仅用一个通用的函数处理,由每个按钮在触发单击事件时调用,就可以简化代码了;
按钮按下会触发WM_LBUTTONDOWN消息,所以我们只要截获这一消息就可以。可以在PreTranslateMessage函数中进行处理
实现功能
1.新建基于对话框的应用程序
2.为了方便效果的展示,这里使用了数据库控件调用与显示了数据信息;
所在在对话框资源中添加ADO DATA控件,DATA GRID控件,并进行相关设置,额外再添加一个搜索用编辑框,虚拟键盘的按钮,具体如例程界面;
3.添加处理按钮单击事件的函数
void CGkbc8Dlg::OnBtnClick(HWND hButton)
{
CButton* pButton = (CButton*)CButton::FromHandle(hButton);
if (pButton)
{
CString str;
pButton->GetWindowText(str);
CString text;
m_Data.GetWindowText(text);
if (str != "Del")
{
text.Insert(text.GetLength(),str);
}
else
{
text = text.Left(text.GetLength()-1);
}
m_Data.SetWindowText(text);
}
}
复制代码
BOOL CGkbc8Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if ((pMsg->message==WM_LBUTTONUP)&&(pMsg->hwnd != m_Data.m_hWnd&&pMsg->hwnd!=m_hWnd))
{
OnBtnClick(pMsg->hwnd);
}
return CDialog::PreTranslateMessage(pMsg);
}
复制代码
5.给编辑框和数据库控件关联变量
CEdit m_Data;
CAdodc m_ADODC;
初始化m_Data
m_ADODC.SetRecordSource("select * from drug");
m_ADODC.Refresh();
我们具体来演示功能实现的过程
[iqiyi]http://player.video.qiyi.com/5e1bec00525e18e595218a12753ec70a/0/0/w_19rta4svm1.swf-albumId=4940459109-tvId=4940459109-isPurchase=0-cnId=12[/iqiyi]
源码及视频下载
(仅在电脑可见)
(, 下载次数: 2)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4