SendMessage的第4个参数怎么获取? 如题,例如发消息 ::SendMessage(hwnd,WM_COMMAND,IDB_START_UPDATE,99);怎么在消息响应函数中取得第4个参数99? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void OnSysCommand(WPARAM nID, LPARAM lParam){ //IDB_START_UPDATE = nID; //lParam = 99} 处理WM_COMMAND消息,通过lParam参数传过去的。 这是我的代码:void CTCPPara::OnButton1() //Button1按下的消息{ ::SendMessage(this->m_hWnd,WM_COMMAND,ID_CONNECT,99);//给控件ID为ID_CONNECT的按钮发消息}void CTCPPara::OnConnect(WPARAM nID, LPARAM lParam) //ID_CONNECT控件按下的消息{ int id=nID; int para=lParam;} 没有人知道吗?我将发送消息的参数转成LPARAM也不行,::SendMessage(this->m_hWnd,WM_COMMAND,ID_CONNECT,(LPARAM)99); ::SendMessage(this->m_hWnd,WM_COMMAND,ID_CONNECT,(LPARAM)99);你的消息号必须自己定义! 那俩只是消息带的参数,对于自定义的消息,你可以根据实际需要传递数值,但对于系统消息他们都有特定的含义,比如句柄、键盘鼠标状态等,WM_COMMAND你可以看下MSDN。 如果要模拟某个按钮被按下的话,LPARAM=NULL就可以了。你只要::SendMessage(this->GetSafeHwnd(), WM_COMMAND, MAKEWPARAM(ID_CONNECT, BN_CLICKED), NULL);WM_COMMAND消息的WPARAM的低字为控件ID,高字为识别码,已经足够了。不知道你从哪里找来的99这个数字,你指定了非法的参数,肯定会崩溃。 如何让读入得坐标 用OpenGL给绘制出来,请教设置视图,投影的步骤。。 求助 关于VC中有关消息队列函数 图形抖动 我经过签名的.CAB包,安装时为什么还会提示"未知发行商"? 新手问题 本人用asp做的网站,请大侠指点 我在DLL中设了全局变量,为什么没有起作用? 怎样得到菜单的宽度?? 用无模式与模式方式打开窗口带来的问题 finddriver 这个函数是什么意思?谢谢您 如何发送消息给CCmdTarget的继承类 关于Visual Studio 2010的编译错误,请大家指教!!
{
//IDB_START_UPDATE = nID;
//lParam = 99
}
这是我的代码:
void CTCPPara::OnButton1() //Button1按下的消息
{
::SendMessage(this->m_hWnd,WM_COMMAND,ID_CONNECT,99);//给控件ID为ID_CONNECT的按钮发消息
}
void CTCPPara::OnConnect(WPARAM nID, LPARAM lParam) //ID_CONNECT控件按下的消息
{
int id=nID;
int para=lParam;
}
我将发送消息的参数转成LPARAM也不行,
::SendMessage(this->m_hWnd,WM_COMMAND,ID_CONNECT,(LPARAM)99);
你只要::SendMessage(this->GetSafeHwnd(), WM_COMMAND, MAKEWPARAM(ID_CONNECT, BN_CLICKED), NULL);
WM_COMMAND消息的WPARAM的低字为控件ID,高字为识别码,已经足够了。不知道你从哪里找来的99这个数字,你指定了非法的参数,肯定会崩溃。