wince环境,线程间发送自定义message,从cdoc到cview

开发环境: WinCE 5.0 EVC 4.0

自己定义的user message, cdoc中起了一个新的thread,这个thread负责获取新的数据。为了不阻碍数据获取的执行,获取数据后,考虑将数据发送给主UI thread去显示。Cview的代码都是在主UI thread中的。所以相当于Cdoc中的起的thread send 或者post message 到Cview. 定义了用户message WM_UPDATEDATA, 在Cview中添加了Message mapping和对用的on响应方法。


但是试了很多方式都失败 如:

SendMessageW((HWND)pDoc->pDemoView, WM_UPDATEDATA, 0,0);

PostMessage((HWND)pDoc->pDemoView, WM_UPDATEDATA, 0,0);

PostThreadMessage(AfxGetApp ()->m_nThreadID , WM_UPDATEDATA, 0,0);   

同样的语句,如果放在cview中调用,是没有问题的,证明message mapping什么的都是正确的。

最后找到这个答案stackoverflow上的 点击打开链接


核心是“pView->PostMessage(msg, wParam, lParam);

不清楚为什么用成员函数这种调用方式就成功,但是用4个parameter的直接调用方式失败。


注:1.这里的Cview OnCreat时,会调用Cdoc的方法,把自己的handle 传给Cdoc的成员变量 pDemoView.

2. CmyDoc起数据获取thread时,把自己的handle pDoc作为参数传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值