首先在头文件里加入函数指针定义:
typedef BOOL (WINAPI *_TouchCalibrate)();
然后使用如下代码,就会出现屏幕校准画面了。
HINSTANCE hinstance = LoadLibrary(_T("coredll.dll"));
if (hinstance == NULL)
{
AfxMessageBox (L"instance == NULL");
return;
}
_TouchCalibrate TouchCalibrate = NULL;
TouchCalibrate = (_TouchCalibrate)GetProcAddress(hinstance , L"TouchCalibrate");
if (TouchCalibrate == NULL)
{
AfxMessageBox (L"TouchCalibrate == NULL");
return;
}
TouchCalibrate ();
FreeLibrary(hinstance );
但是有个现象就是,校准完之后在屏幕上会提示“请按ESC取消保存,按ENTER保存校准数据”之类的话,其实点击一下触摸屏就可以保存了,问题出来了,我用的是触摸笔根本就没有键盘,想把这段话改成“请点击触摸屏就可以返回程序”之类的话,这个要怎么改呢?还有要是改不了,要自己些一个触摸屏校准程序,该如何入手呢?请高手指点!谢谢!
9 个解决方案
#1
关注!
用MS提供的程序,改可能比较难。
实在不行,只能让驱动提供支持,自己写一个校准程序。
用MS提供的程序,改可能比较难。
实在不行,只能让驱动提供支持,自己写一个校准程序。
#2
修改WINCE500\PUBLIC\COMMON\OAK\DRIVERS\CALIBRUI下的calbriui.rc文件
修改问以后记得重新build public文件和内核
修改问以后记得重新build public文件和内核
#3
这个我以前试过的,在PB5.0里只要点"build and Sysgen",系统就编译不过去,而且接下来重新build一个新的系统都提示错误,后来只有重新安装PB了,所以后来我就没动过"Build and Sysgen"那个功能了,呵呵.现在还不知道是为什么就会出错呢?
你们的可以吗?
你们的可以吗?
#4
当然可以。
而且也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
而且也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
#5
用命令行单独编译修改的calibrui?这个不会啊!
是不是在命令行下找到该目录然后输入build -cfs就可以了啊,还是有别的命令!
是不是在命令行下找到该目录然后输入build -cfs就可以了啊,还是有别的命令!
#6
也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
在命令行下找到该目录然后输入build -cfs就可以
然后再Sysgen
在命令行下找到该目录然后输入build -cfs就可以
然后再Sysgen
#7
恩,周一再试试!!
#8
嗯,按照楼上俩位的方法,问题已经解决!
现在又有一个新的问题了,我想通过发ESC键来取消触摸屏的保存,但是一直不行,不知道是什么原因,代码如下:
在一个线程里,
HWND hwnd;
hwnd = ::GetForegroundWindow();
RETAILMSG(1,(_T("send esc to the dialog hwnd = 0x%x\r\n"),hwnd));
::PostMessage(hwnd,WM_KEYDOWN,VK_ESCAPE,NULL);
Sleep(100);
::PostMessage(hwnd,WM_KEYUP,VK_ESCAPE,NULL);
我用SPY跟踪过得到的句柄应该就是校准程序的,但不知道为什么就是不退出校准的界面,还用::PostMessage(hwnd,WM_DESTROY,0,NULL);试过也不行.大家帮忙分析一下是什么原因,再次麻烦了!
现在又有一个新的问题了,我想通过发ESC键来取消触摸屏的保存,但是一直不行,不知道是什么原因,代码如下:
在一个线程里,
HWND hwnd;
hwnd = ::GetForegroundWindow();
RETAILMSG(1,(_T("send esc to the dialog hwnd = 0x%x\r\n"),hwnd));
::PostMessage(hwnd,WM_KEYDOWN,VK_ESCAPE,NULL);
Sleep(100);
::PostMessage(hwnd,WM_KEYUP,VK_ESCAPE,NULL);
我用SPY跟踪过得到的句柄应该就是校准程序的,但不知道为什么就是不退出校准的界面,还用::PostMessage(hwnd,WM_DESTROY,0,NULL);试过也不行.大家帮忙分析一下是什么原因,再次麻烦了!
#9
结贴!
#1
关注!
用MS提供的程序,改可能比较难。
实在不行,只能让驱动提供支持,自己写一个校准程序。
用MS提供的程序,改可能比较难。
实在不行,只能让驱动提供支持,自己写一个校准程序。
#2
修改WINCE500\PUBLIC\COMMON\OAK\DRIVERS\CALIBRUI下的calbriui.rc文件
修改问以后记得重新build public文件和内核
修改问以后记得重新build public文件和内核
#3
这个我以前试过的,在PB5.0里只要点"build and Sysgen",系统就编译不过去,而且接下来重新build一个新的系统都提示错误,后来只有重新安装PB了,所以后来我就没动过"Build and Sysgen"那个功能了,呵呵.现在还不知道是为什么就会出错呢?
你们的可以吗?
你们的可以吗?
#4
当然可以。
而且也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
而且也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
#5
用命令行单独编译修改的calibrui?这个不会啊!
是不是在命令行下找到该目录然后输入build -cfs就可以了啊,还是有别的命令!
是不是在命令行下找到该目录然后输入build -cfs就可以了啊,还是有别的命令!
#6
也没必要用build and sysgen ,你可以用命令行单独编译修改的calibrui,然后再sysgen就可以了。
在命令行下找到该目录然后输入build -cfs就可以
然后再Sysgen
在命令行下找到该目录然后输入build -cfs就可以
然后再Sysgen
#7
恩,周一再试试!!
#8
嗯,按照楼上俩位的方法,问题已经解决!
现在又有一个新的问题了,我想通过发ESC键来取消触摸屏的保存,但是一直不行,不知道是什么原因,代码如下:
在一个线程里,
HWND hwnd;
hwnd = ::GetForegroundWindow();
RETAILMSG(1,(_T("send esc to the dialog hwnd = 0x%x\r\n"),hwnd));
::PostMessage(hwnd,WM_KEYDOWN,VK_ESCAPE,NULL);
Sleep(100);
::PostMessage(hwnd,WM_KEYUP,VK_ESCAPE,NULL);
我用SPY跟踪过得到的句柄应该就是校准程序的,但不知道为什么就是不退出校准的界面,还用::PostMessage(hwnd,WM_DESTROY,0,NULL);试过也不行.大家帮忙分析一下是什么原因,再次麻烦了!
现在又有一个新的问题了,我想通过发ESC键来取消触摸屏的保存,但是一直不行,不知道是什么原因,代码如下:
在一个线程里,
HWND hwnd;
hwnd = ::GetForegroundWindow();
RETAILMSG(1,(_T("send esc to the dialog hwnd = 0x%x\r\n"),hwnd));
::PostMessage(hwnd,WM_KEYDOWN,VK_ESCAPE,NULL);
Sleep(100);
::PostMessage(hwnd,WM_KEYUP,VK_ESCAPE,NULL);
我用SPY跟踪过得到的句柄应该就是校准程序的,但不知道为什么就是不退出校准的界面,还用::PostMessage(hwnd,WM_DESTROY,0,NULL);试过也不行.大家帮忙分析一下是什么原因,再次麻烦了!
#9
结贴!