#include <windows.h>
#include <stdio.h>
LONG WINAPI WndProc(HWND, UINT,WPARAM,LPARAM); //回调原型
int WINAPI WinMain(
HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
LPSTR
lpCmdLine,
int
nCmdShow
)
{
WNDCLASS wc;
HWND hwnd;
MSG msg;
//1.设计窗体
//wc.style = CS_VREDRAW | CS_HREDRAW;
wc.style = CS_HREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
//wc.hIcon = LoadIcon(NULL,IDI_WINLOGO);
wc.hIcon = LoadIcon(NULL,IDI_ERROR);
//wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hCursor = LoadCursor(NULL,IDC_CROSS);
//wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
//wc.hbrBackground = (HBRUSH)(COLOR_GRAYTEXT);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MyWndClass";
RegisterClass(&wc); //2.注册窗体
hwnd = CreateWindow( //3.创建窗体
"MyWndClass", //WNDCLASS NAME
"SDK APPLICATION标题", //WINDOW TITLE
//WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, //WINDOW STYLE
WS_TILEDWINDOW,
10, //Horizontal position
20, //Vertical position
800, //Initial width
600, //Initial height
HWND_DESKTOP, //Handle of parent window
NULL, //Menu handle
hInstance, //Application's instance handle
NULL //Window-creation data
);
ShowWindow(hwnd,nCmdShow); //4.显示更新窗体
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){ //5.消息循环
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message,WPARAM wParam,LPARAM lParam){
PAINTSTRUCT ps;
HDC hdc;
const char chMsg[]="我是中国人";
switch(message){
case WM_CHAR:
char szCh[20];
sprintf(szCh,"char is %d",wParam);
MessageBox(hwnd,szCh,"info",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"Mouse Clicked","提示",0);
hdc=GetDC(hwnd);
TextOut(hdc,0,50,chMsg,strlen(chMsg));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Ellipse(hdc,0,0,200,100);
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"确定退出吗?","确认",MB_YESNO)){
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}