LRESULT CALLBACK WinSunProc( HWND hwnd, // 窗口句柄 UINT uMsg, // 消息代码 WPARAM wParam, // 第一条消息参数 LPARAM lParam // 第二条消息参数 ); { switch(uMsg) { case WM_CHAR: // 用户按下字符键时...收到WM_CHAR消息通过Translatemessage函数转换ASCII值。 char szChar[20]; sprintf(szChar,"char code is %d",wParam); MessageBox(hwnd,szChar,"char",0); break; case WM_LBUTTONDOWN: // 接收窗口按下鼠标左键 会产生 WM_LBUTTONDOWN 消息. MessageBox(hwnd,"mouse clicked","message",0); HDC hdc; hdc=GetDC(hwnd); TextOut(hdc,0,50,"程序员之家",strlen("程序员之家")); //ReleaseDC(hwnd,hdc); break; case WM_PAINT: // 对 WM_PAINT 消息进行处理。当窗口客户区部分或全部无效时,系统发生 WM_PAINT 消息 // 通知应用程序重新绘制窗口。 HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0,"http://www.sunxin.org",strlen(http://www.sunxin.org)); EndPaint(hwnd,&ps); break; case WM_CLOSE: // 用户点击关闭按钮时 系统会接收 WM_CLOSE if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO)) { DestroyWindow(hwnd); // 当用户在对话框上选择 是时~~会调用DestroyWindow销毁窗口。 } break; case WM_DESTROY: // 要想让程序正常退出,必须响应 WM_DESTROY 消息~~并在消息代码中调用 PostQuitMessage 函数 PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); // 函数调用默认的窗口过程,对程序没有处理的其他消息提供默认处理。 } |