嵌入式系统_11.doc
文本预览下载声明
课题 实验十 编写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
显示全部