?? chktouch.c
字號:
/****************************************************************************
* 文件名:ChkTouch.C
* 功能:觸摸屏校準程序。
* 讀取觸摸屏左上角和右下角兩個指定點的A/D值,保存
* 到E2PROM中,以便于以后
* 說明:使用MiniGUI for uC/OS-II,使用ADS 1.2編譯器。
****************************************************************************/
#include <stdlib.h>
/* 包含MiniGUI的配置頭文件(編譯配置選項) */
#include "MiniGUI_config.h"
/* 包含MiniGUI頭文件 */
#include "common.h"
#include "minigui.h"
#include "gdi.h"
#include "window.h"
#include "control.h"
/****************************************************************************
* 名稱:MyNotifProc()
* 功能:編輯框控件IDC_EDIT1的回調函數。
* 當編輯框接收到數據輸入時(EN_CHANGE消息),就進行單位轉換,然后在靜
* 態文本框IDC_STATIC2中顯示轉換結果。
* 入口參數:hWnd 窗口句柄
* id 控件ID
* nc 通知碼
* add_data 附加參數
* 出口參數:無
****************************************************************************/
static void MyNotifProc(HWND hwnd, int id, int nc, DWORD add_data)
{ static char disp[50];
double len;
int d, f;
if((id==IDC_EDIT1) && (nc==EN_CHANGE))
{ GetWindowText(hwnd, disp, 32); // 取得字符
len = atof(disp); // 轉換為浮點數
len = len / 25.4;
d = (int)len;
f = (int)(len * 1000) % 1000;
sprintf(disp, "相當于%d.%03d英寸", d, f);
SetDlgItemText(GetParent(hwnd), IDC_STATIC2, disp); // GetParent(hwnd)是取得父窗口句柄,即hDlg
}
if(nc == EN_ENTER)
{ PostMessage(GetParent(hwnd), MSG_COMMAND, IDOK, 0);
}
}
/****************************************************************************
* 名稱:DialogBoxProc()
* 功能:對話框過程函數。
* 在MSG_INITDIALOG消息中保存啟動對話框時傳遞過來的lParam參數。
* 在MSG_COMMAND消息中處理IDOK命令,將處理后的數據返回主程序(length變量)。
* 入口參數:hWnd 窗口句柄
* message 消息
* wParam 消息附加參數1
* lParam 消息附加參數2
* 出口參數:返回消息處理結果。
****************************************************************************/
static int DialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{ char disp[50];
double *length;
switch (message)
{ case MSG_INITDIALOG:
SetWindowAdditionalData(hDlg, lParam); // 保存lParam參數(到窗口附加參數中)
// 即保存rcvdat指針
SetNotificationCallback(GetDlgItem(hDlg, IDC_EDIT1),
MyNotifProc); // 設計控件回調函數
return(1);
case MSG_COMMAND:
switch (LOWORD(wParam))
{ case IDCANCEL:
EndDialog (hDlg, wParam);
break;
case IDOK:
length = (double*) GetWindowAdditionalData(hDlg);
GetWindowText(GetDlgItem(hDlg, IDC_EDIT1), disp, 32);
*length = atof(disp); // 保存轉換結果到主程序的變量
EndDialog (hDlg, wParam);
break;
default:
break;
}
break;
case MSG_CLOSE:
EndDialog (hDlg, IDCANCEL);
break;
default:
break;
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
/****************************************************************************
* 名稱:InitDialogBox()
* 功能:初始化對話框,然后啟動對話框。
* 入口參數:hWnd 父窗口句柄
* 出口參數:無
****************************************************************************/
static void InitDialogBox(HWND hWnd, double *rcvdat)
{
MyDlgTEMP.controls = MyCtrlData;
DialogBoxIndirectParam(&MyDlgTEMP, hWnd, DialogBoxProc, (LPARAM)rcvdat);
}
/****************************************************************************
* 名稱:MiniGUIMain()
* 功能:MiniGUI程序入口點。
* 入口參數:argc 參數個數
* argv 參數字符串指針
* 出口參數:返回0。
****************************************************************************/
int MiniGUIMain(int argc, const char *argv[])
{ double length = 0.0;
/* 雖然MiniGUI for uC/OS-II不支持"MiniGUI-Lite模式",
但為了保持代碼的移植性,此段不要刪除
*/
#ifdef _LITE_VERSION
SetDesktopRect(0,0, 800,600);
#endif
InitDialogBox(HWND_DESKTOP, &length);
return(0);
}
/* 定義桌面接口函數 */
#ifndef _LITE_VERSION
#include "dti.c"
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -