c++ SendMessage问题

几个参数的含义,尤其是后面两个,还有直接sendmessage和::sendmessage的区别... 几个参数的含义,尤其是后面两个,还有直接sendmessage和::sendmessage的区别 展开
 我来答
1127548553胡焱
推荐于2016-07-21
知道答主
回答量:17
采纳率:0%
帮助的人:12.8万
展开全部
HWND hWnd一个窗口句柄,UINT message一个宏定义的消息,为一个无符号整型值
CWnd::sendmessage(UINT message,WPARAM wParam=0,LPARAM lParam=0)

将消息发送给这个窗口对象,用这个窗口对象的消息响应函数处理
::SendMessage(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)

将消息发送给这个句柄指示的窗口资源,用这个窗口资源的消息响应函数处理。

后面两个参数根据message的不同而具有不同的含义,是附加参数
有可能是坐标点,也有可能是指针
更多追问追答
追问
谢谢,麻烦帮我看下我这样写为什么报错
CWnd *p=GetParent();
HWND pp=p->GetSafeHwnd();
::SendMessage(pp,WM_MY_MESSAGE,WPARAM wParam,LPARAM lParam);

CDialog::OnOK();
编译有两个错误:
error C2275: 'WPARAM' : illegal use of this type as an expression
error C2146: syntax error : missing ')' before identifier 'wParam'
那两参数我都在消息映射部分添加了
追答
上面的我稍微改了点,你看看。
CWnd *p=GetParent();
HWND pp=p->GetSafeHwnd();
::SendMessage(pp,WM_MY_MESSAGE,0,0);
CDialog::OnOK()
一般自定义消息后面两个参数不需要传递什么时,就用0或NULL
mdcloud
2012-09-26 · 超过10用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:33.7万
展开全部
上面已经对SendMessage进行了解释,我就说下面的吧,直接SendMessage如果在一个类中使用当然调用的是类自身的SendMessage函数,::sendmessage是API函数,在默认情况下是全局函数,它们的差异就是第一个参数有无窗口句柄。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slggamer
2012-09-26
知道答主
回答量:17
采纳率:0%
帮助的人:7.6万
展开全部
::表示作用域,比如std::cout表示使用标准域的cout函数,::前面不带表示使用全局作用域
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zll2117
2012-09-26
知道答主
回答量:8
采纳率:0%
帮助的人:1.2万
展开全部
第一个接收消息的窗口句柄,第二是Msg id,后面两个是消息参数,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式