文档详情

嵌入式系统_11.doc

发布:2017-08-19约4.5千字共13页下载文档
文本预览下载声明
课题 实验十 编写Dialog程序 需 6课时 教学 目的 要求 教学 重点 教学 难点 教案编写日期 2011年5月10日 教学内容及教学过程 提示与补充 一、组织教学 二、内容讲解 10.1 实验目的 进一步熟悉EVC集成开发环境以及相关配置,掌握对话框应用程序的设计与实现。 10.2 实验内容 编写Dialog应用程序 10.3 实验设备 1. OURS-PXA270-RP实验箱,烧录有WinCE的Flash,交叉网线及USB延长线。 2. 安装Windows系统的PC机,EVC集成开发环境 10.4 实验步骤 1. 硬件连接 2. 程序剖析 #include windows.h #include resource.h #define MAX_TEXT 1024 BOOL CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM);//对话框窗口过程回调函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)//程序入口 { return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1//对话框资源标识), NULL, DialogProc//对话框窗口过程); } HWND hLogList;//日志列表框句柄 void OutputLog(LPCTSTR lpFormat, ...)//写日志函数 { va_list arg; TCHAR buf[256]; if(hLogList != NULL) { va_start(arg, lpFormat); wvsprintf(buf, lpFormat, arg); va_end(arg); SendMessage(hLogList, LB_ADDSTRING//增加字符串事件, 0, (LPARAM)buf); } } BOOL CALLBACK DialogProc(HWND hDlg//对话框句柄, UINT uMsg, WPARAM wParam, LPARAM lParam) { TCHAR strText[MAX_TEXT]; WORD wID, wNotifyCode; DWORD nIndex; switch(uMsg) { case WM_INITDIALOG://对话框初始化消息 SendMessage(GetDlgItem(hDlg, IDC_CKLOG)//根据对话框控件标识得到对话框上某控件的操作句柄, BM_CLICK//复选框单击事件, 0, 0); SendMessage(GetDlgItem(hDlg, IDC_CHECK1), BM_CLICK, 0, 0); OutputLog(_T(initialization dialog done)); break; case WM_CLOSE: EndDialog(hDlg, 0); break; case WM_COMMAND: wID = LOWORD(wParam);//控件标识 wNotifyCode = HIWORD(wParam);//控件事件标识 switch(wID) { case IDC_CKLOG://IDC_CKLOG复选框的事件处理 if(wNotifyCode == BN_CLICKED) { if(SendMessage(GetDlgItem(hDlg, IDC_CKLOG), BM_GETCHECK, 0, 0) == BST_CHECKED// BST_CHECKED指的是IDC_CKLOG复选框处于被选中状态;如果被选中的话,使IDC_LISTLOG列表框与IDC_BTNCLEAR可用(Enable)) { hLogList = GetDlgItem(hDlg, IDC_LISTLOG); EnableWindow(hLogList, TRUE); EnableWindow(GetDlgItem(hDlg, IDC_BTNCLEAR), TRUE); } Else//如果IDC_CKLOG未被选中,则使IDC_LISTLOG列表框与IDC_BTNCLEAR不可用。 { EnableWindow(GetDlgItem(hDlg, IDC_BTNCLEAR), FALSE); Enabl
显示全部
相似文档