#include <windows.h> #include <stdio.h> #include <tchar.h> #pragma comment (lib,"User32.lib") #pragma comment (lib,"Gdi32.lib") LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state )//windows入口地址 { WNDCLASS wndcls;//窗口类 wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION); wndcls.hInstance=hInstance; wndcls.lpfnWndProc=WinSunProc;//回调函数 wndcls.lpszClassName=_T("Weixin2003"); wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd; hwnd=CreateWindow(_T("Weixin2003"), _T("北京维新科学技术培训中心"), 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, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ) { switch(uMsg) { case WM_CHAR: TCHAR szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox //创建消息框 (hwnd,//窗口的句柄 szChar//消息显示文本 ,_T("weixin")//标题 ,MB_YESNO);//消息框的类型 break; case WM_LBUTTONDOWN: MessageBox(hwnd,_T("mouse clicked"),_T("weixin"),0); HDC hdc;//DC(Device Context) 句柄,帮助完成绘制动作,程序中作图 hdc=GetDC(hwnd);//窗口的句柄,获得DC TextOut(hdc,0,50,_T("计算机编程语言培训"),strlen("计算机编程语言培训"));//文本输出 ReleaseDC(hwnd,hdc);//释放DC,DC要占用内存,因此必须要释放DC break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0,_T("BJ维新培训"),strlen("BJ维新培训")); EndPaint(hwnd,&ps);//释放内存 DC break; case WM_CLOSE: if(IDYES ==MessageBox(hwnd,_T("是否真的结束?"),_T("weixin"),MB_YESNO))//返回值为IDYES,则窗口关闭 { DestroyWindow(hwnd);//给windows发布WM_DESTROY and WM_NCDESTROY消息 } break; case WM_DESTROY: PostQuitMessage(0);//将窗口销毁,使 WM_QUIT为0,则使GetMessage为0,调成while()函数并且返回0值,则WinMain()函数终止 break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam);//缺省窗口过程,对其他不感兴趣的过程处理 } return 0; }