hello world 程序优化
这样使添加处理消息函数变得简单
步骤1: 头文件中添加相关项
步骤2: cpp添加具体实现方法
步骤3: 结构体数组中添加相关项
.h 文件:
struct DecodeUint{
UINT meesage;
LONG (*fun)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
};
#define dim(x) (sizeof(x)/sizeof(x[0]))
LONG OnDestory(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LONG OnPaint(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
.c文件:
#include
#include Border.h
struct DecodeUint MainMessageProc[] = {
WM_DESTROY,OnDestory,
WM_PAINT,OnPaint,
};
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.hCursor = NULL;
wc.hIcon = NULL;
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = TEXT(hello);
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
if (!RegisterClass(wc)) return -1;
HWND hWnd = CreateWindow(TEXT(hello),TEXT(helloworld), WS_VISIBLE | WS_BORDER | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_CAPTION,
10,10,320,240,NULL,NULL,hInstance,NULL);
UpdateWindow(hWnd);
ShowWindow(hWnd,nCmdShow);
MSG msg;
while (GetMessage(msg, NULL, 0, 0))
{
TranslateMessage(msg);
DispatchMessage(msg);
}
return 1;
}
LONG OnDestory(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PostQuitMessage(1);
return TRUE;
}
LONG OnPaint(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
RECT rect;
GetClientRect(hWnd,rect);
hdc = BeginPaint(hWnd,ps);
DrawText(hdc,TEXT(hello world),-1,rect,DT_VCENTER | DT_CENTER);
EndPaint(hWnd,ps);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
for (int i = 0;i dim(MainMessageProc); i++)
{
if (MainMessageProc[i].meesage == message)
{
(*MainMessageProc[i].fun)(hWnd,message,wParam,lParam);
}
}
return DefWindowProc(hWnd,message,wParam,lParam);
}
WinCE 相关文章:
- 如何使WINCE启动时自动运行应用程序(04-11)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- WinCE系统下BootLoader的开发(04-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- WindowsCE.Net下CAN卡的驱动程序设计(04-12)