#include<Windows.h> #define TextHeight 20 #define TextWdith 80 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd) { static TCHAR szAPPName[] = TEXT("MyWindows"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.hInstance = hInstance; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszClassName = szAPPName; wndclass.lpszMenuName = NULL; if(!RegisterClass(&wndclass)) { MessageBox(NULL,TEXT("这个程序需要在 windows NT 下菜能执行!"),TEXT("错误"),MB_OK | MB_ICONERROR); return 0; } hwnd = CreateWindow(szAPPName,TEXT("Windows编程练习"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,nShowCmd); UpdateWindow(hwnd); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam) { HDC hdc; PAINTSTRUCT ps; RECT rect; TCHAR szBuffer[128]; int i,j,mul; TCHAR szStrings[] = TEXT("九九乘法表"); switch(message) { /* case WM_PAINT: hdc = BeginPaint(hwnd,&ps); GetClientRect(hwnd,&rect); DrawText(hdc,TEXT("This is my first window !"),-1,&rect,DT_VCENTER | DT_CENTER | DT_SINGLELINE); EndPaint(hwnd,&ps); return 0; */ case WM_PAINT: hdc = BeginPaint(hwnd,&ps); TextOut(hdc ,0,10,szStrings,lstrlen(szStrings)); for(i = 1;i < 10;i++) { for(j = 1;j <= i;j++) { mul = i*j; wsprintf(szBuffer,TEXT("%d x %d = %d "),i,j,i*j); TextOut(hdc,TextWdith*(j - 1),20 + TextHeight*i,szBuffer,lstrlen(szBuffer)); } } EndPaint(hwnd,&ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hwnd,message,wparam,lparam); } }