消息处理:(窗口过程)

//6.处理消息(窗口过程)
LRESULT CALLBACK WindowProc(
	HWND hWnd, //消息产生的窗口句柄
	UINT Msg,//具体消息名称 ,WM_XXX消息名(消息名A)A代表鼠标等
	WPARAM wParam,//键盘消息
	LPARAM lParam //鼠标消息
	) {
		//消息的处理
		switch(Msg) 
		{//根据不同消息,做不同处理
			case WM_CLOSE:{
				DestroyWindow(hWnd);//如果只是点关闭,是没有真正解锁进程,而是DestroyWindow 发送另一个消息WM_DESTROY,
				break;
			}
			case WM_DESTROY:{
				PostQuitMessage(0);//另上面getMessage()==false,真正关闭程序
			}
			case WM_LBUTTONDOWN:{//鼠标左键按下
				int xpos = LOWORD(lParam);
				int ypos = LOWORD(lParam);
				char buf[1024];
				wsprintf(buf,TEXT("x = %d, y = %d"), xpos, ypos);

				//弹出窗口,参数1那个窗口 2内容,3标题
				//MessageBox(hWnd,TEXT("文本"),TEXT("标题"),MB_OK相等是最后的选项;
				MessageBox(hWnd,buf,TEXT("标题"),MB_OK);
				break;
			}
			case WM_KEYDOWN: {// 键盘
				MessageBox(hWnd,TEXT("键盘按下"),TEXT("标题键盘"),MB_OK);
				break;
							 }
			case WM_PAINT:{//绘图
				//绘图结构体
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				//strlen 设置大小
				TextOut(hdc,100,100,TEXT("hello"),strlen("hello"));
				EndPaint(hWnd, &ps);
				
				break;
						  }

								



		}

		//返回默认处理方式
		return DefWindowProc(hWnd,Msg,wParam,lParam);
}

posted @ 2023-03-10 17:49  壹剑霜寒十四州  阅读(11)  评论(0编辑  收藏  举报