//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);
}
标签:case,窗口,处理,hWnd,WM,break,消息,TEXT
From: https://www.cnblogs.com/tsqo/p/17204307.html