⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 touchcalibrate.cpp

📁 This is a Windows CE 6.0 Board Support Package for the Gumstix Verdex platform
💻 CPP
字号:
///---------------------------------------------------------------------------------
// Copyright (c) David Vescovi.  All rights reserved.
//
// TouchCalibrate - Stand alone touch screen calibrate.
//---------------------------------------------------------------------------------

#include <Windows.h>

#define TOUCHSCREEN_ENTRY_KEY _T("HARDWARE\\DEVICEMAP\\TOUCH")

extern "C" BOOL WINAPI TouchCalibrate(void);

// Detect calibration data
BOOL CalibrationOK()
{
    HKEY hKey;
    DWORD dwStatus;


    // Try to open touchscreen calibration keys
    dwStatus = RegOpenKeyEx(
                HKEY_LOCAL_MACHINE,
                TOUCHSCREEN_ENTRY_KEY,
                0,
                0,
                &hKey);
                
    if (dwStatus != ERROR_SUCCESS) {   	
        return FALSE;
    }


	// Try to get calibration data
	dwStatus = RegQueryValueEx(hKey,_T("CalibrationData"),NULL,NULL,NULL,NULL);

    // Close opened keys
	RegCloseKey(hKey);

//	return (dwStatus == ERROR_SUCCESS);		// only calibrate if no calib data in registry
	return (FALSE);							// force a calibration always
}   

//------------------------------------------------------------------------------

// Flush calibration data to storage
BOOL FlushCalibrationData ()
{
  HKEY hKey;
  DWORD dwStatus;
  
  dwStatus = RegOpenKeyEx (HKEY_LOCAL_MACHINE, 
                     TOUCHSCREEN_ENTRY_KEY,
                     0,
                     0,
                     &hKey);
                     
  if (dwStatus == ERROR_SUCCESS)
  {
    // Flush new calibration data
    RegFlushKey(hKey);
  
    // Close opened keys
    RegCloseKey(hKey);
       
  }
  
  return (dwStatus == ERROR_SUCCESS);
}

//------------------------------------------------------------------------------

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
	BOOL errcode;

	if (!CalibrationOK())	
	{
		errcode=TouchCalibrate();
        if (errcode == TRUE)
        {
            FlushCalibrationData ();
        }
	}


	return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -