C++ WIN32 SDK的入门级疑问。
这是我的按钮代码:hWnd=CreateWindow("WndClass","▍▍▍我的第一个WIN32程序▎▎▎",WS_OVERLAPPEDWINDOW,0,0,10...
这是我的按钮代码:
hWnd= CreateWindow( "WndClass", "▍▍▍我的第一个WIN32程序▎▎▎", WS_OVERLAPPEDWINDOW,
0, 0, 1000, 0, NULL, NULL, hInstance,NULL);
hWndBtn=CreateWindow("button","显示",BS_PUSHBUTTON
| WS_CHILD | WS_VISIBLE, 0, 0, 70, 50, hWnd,
(HMENU)123, NULL, NULL);
消息处理函数:
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND://这个呢??做什么的??
if (LOWORD(wParam) == 123)////这句到底是什么意思????
{
MessageBox(NULL,"dasd","dsa",NULL);
}
}
而且,这个事按钮click事件执行的代码。那如果不是按下呢,,是mouse_up呢??那怎么改? 展开
hWnd= CreateWindow( "WndClass", "▍▍▍我的第一个WIN32程序▎▎▎", WS_OVERLAPPEDWINDOW,
0, 0, 1000, 0, NULL, NULL, hInstance,NULL);
hWndBtn=CreateWindow("button","显示",BS_PUSHBUTTON
| WS_CHILD | WS_VISIBLE, 0, 0, 70, 50, hWnd,
(HMENU)123, NULL, NULL);
消息处理函数:
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND://这个呢??做什么的??
if (LOWORD(wParam) == 123)////这句到底是什么意思????
{
MessageBox(NULL,"dasd","dsa",NULL);
}
}
而且,这个事按钮click事件执行的代码。那如果不是按下呢,,是mouse_up呢??那怎么改? 展开
3个回答
展开全部
先说明2点
1.、初始化完成后,进入一个while循环,这个循环用于接收并处理消息。
2、WndProc函数就是用于处理接收到的消息。
WndProc函数的msg 参数就是用于判断你收到了哪一类消息,WM_COMMAND就是很多种消息中的一种,而这个消息可能会被很多种控件来触发,因此WndProc函数给你2个参数,WPARAM wParam, LPARAM lParam用于判断是哪个控件触发的。WM_COMMAND消息的wParam和lParam表示意义如下:
wParam 高两个字节 通知码
wParam 低两字节 命令ID
lParam 发送命令消息的子窗体句柄。
3. 你用CreateWindow创建了一个button,这个button的ID=123,因此 if (LOWORD(wParam) == 123)这句就是取低2个字节,获得ID判断是不是123这个button发送的消息。因为你可能有很多button,而且也不光button这一种控件会发WM_COMMAND消息。
4. 如果你想处理鼠标的mouse_up,应该用WM_LBUTTONUP WM_RBUTTONUP WM_MBUTTONUP这3类消息,分别代表鼠标的左右中3个键。
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONUP:
//处理鼠标左键
break;
5. WM_LBUTTONUP WM_RBUTTONUP WM_MBUTTONUP消息的wParam和lParam意思我就不多说了,太长了,你要学会看MSDN, 慢慢来,这是个过程,参考刚才的WM_COMMAND在MSDN里面找其他消息的说明,毕竟MSDN是多达4G的资料,你不能总靠百度知道来解决问题,关键是MSDN肯定比我详细,正确。
1.、初始化完成后,进入一个while循环,这个循环用于接收并处理消息。
2、WndProc函数就是用于处理接收到的消息。
WndProc函数的msg 参数就是用于判断你收到了哪一类消息,WM_COMMAND就是很多种消息中的一种,而这个消息可能会被很多种控件来触发,因此WndProc函数给你2个参数,WPARAM wParam, LPARAM lParam用于判断是哪个控件触发的。WM_COMMAND消息的wParam和lParam表示意义如下:
wParam 高两个字节 通知码
wParam 低两字节 命令ID
lParam 发送命令消息的子窗体句柄。
3. 你用CreateWindow创建了一个button,这个button的ID=123,因此 if (LOWORD(wParam) == 123)这句就是取低2个字节,获得ID判断是不是123这个button发送的消息。因为你可能有很多button,而且也不光button这一种控件会发WM_COMMAND消息。
4. 如果你想处理鼠标的mouse_up,应该用WM_LBUTTONUP WM_RBUTTONUP WM_MBUTTONUP这3类消息,分别代表鼠标的左右中3个键。
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONUP:
//处理鼠标左键
break;
5. WM_LBUTTONUP WM_RBUTTONUP WM_MBUTTONUP消息的wParam和lParam意思我就不多说了,太长了,你要学会看MSDN, 慢慢来,这是个过程,参考刚才的WM_COMMAND在MSDN里面找其他消息的说明,毕竟MSDN是多达4G的资料,你不能总靠百度知道来解决问题,关键是MSDN肯定比我详细,正确。
展开全部
case后面都是窗口消息
然后你自己识别 去处理消息
mouse_up有专门对应的消息 自己查
param都是窗口传递的参数 自己查触发消息的行为会对参数造成什么影响
然后你自己识别 去处理消息
mouse_up有专门对应的消息 自己查
param都是窗口传递的参数 自己查触发消息的行为会对参数造成什么影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HWND GetDlgItem(HWND hDlg, int nIDDlgItem); 获取编辑框的句柄 hDlg是窗口的句柄,nIDDlgItem是编辑框的ID号 接着用: int GetWindowText(HWND hWnd,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询