ASSERT((p
=
pMap
->
LookupPermanent(m_hWnd))
!=
NULL
||
(p
=
pMap
->
LookupTemporary(m_hWnd))
!=
NULL);
ASSERT((CWnd
*
)p
==
this
);
//
must be us
这篇文章提供了两种修改方案:
一种是用FromHandle来获得一个CWnd*,然后再调用UpdateData,这个方案我没有实验成功,结果是错虽然不报了,但是界面也没有被更新.
另外一种是通过发消息的方法转到UI线程去处理.可以在窗口映射一个消息,比如ON_MESSAGE(WM_UPDATEDATA, OnUpdateData),然后用SendMessage(WM_UPDATEDATA, FALSE)传消息给窗口,窗口的消息处理肯定是在UI线程里面,这时候可以用来更新界面,实验是成功的,ASSERT就被消除了.
LRESULT CProtectPage::OnUpdateData(WPARAM wParam, LPARAM lParam)
...
...
{
UpdateData(wParam);
return 0;
}
转自:http://blog.youkuaiyun.com/jeven2005/archive/2007/02/14/1510039.aspx
我的问题是在编译 XvidDecTest 的时候,想在对话框上加上一个 Edi t控件来显示播放的帧数,用UpdateData(TRUE) 总是不成功,后来用了上面文章中的第二种方案,成功解决问题。
452



被折叠的 条评论
为什么被折叠?



