直接上手MFC有点看不懂代码,还是先从windows编程原理开始吧。。。
#include <windows.h> #include <stdio.h> LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){ WNDCLASS wndclass; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); wndclass.hCursor = LoadCursor(NULL,IDC_SIZENS); wndclass.hIcon = LoadIcon(NULL,IDI_QUESTION); wndclass.hInstance = hInstance; wndclass.lpfnWndProc = WinSunProc; wndclass.lpszClassName = "lihan"; wndclass.lpszMenuName = NULL; wndclass.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndclass); HWND hwnd; hwnd = CreateWindow("lihan","石家庄",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg; while(GetMessage(&msg,NULL,0,0)){ TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){ switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"lihan",0); break; case WM_LBUTTONDOWN: MessageBox(hwnd,"click","lihan",0); HDC hdc; hdc = GetDC(hwnd); TextOut(hdc,0,50,"lihan",strlen("lihan")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: HDC hdc1; PAINTSTRUCT ps; hdc1 = BeginPaint(hwnd,&ps); TextOut(hdc1,0,0,"lihan",strlen("lihan")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否真的?","lihan",MB_YESNO)){ DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; }
运行情况: