在全局函数中如何得到一个指向doc的指针来调用doc类的updateallviews函数

boya 2001-04-20 02:49:00
本人在编程时遇到一个问题.我在doc中写了一个事件驱动的函数,该函数create了一个
线程,由于线程函数必须是一个全局函数,所以我将this指针作为参数传入线程.可是我
发现这个指针不可以调用doc类的updateallviews函数,请教各位高手如何解决这个问
题.


分数不多,已位所有
...全文
167 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
boya 2001-04-21
  • 打赏
  • 举报
回复
有没有人可以给我答案,紧急!!!!!
Phourm 2001-04-21
  • 打赏
  • 举报
回复
好象是不行啊!
你用View来刷新吧!
CWinApp* pApp=AfxGetApp();
//单文档
CFrameWnd *pMainFrame=(CFrameWnd *)pApp->m_pMainWnd;
CView* pView=pMainFrame->GetActiveView();
pView->Invalidate();//OR pView->SendMessage(WM_PAINT);
boya 2001-04-21
  • 打赏
  • 举报
回复
为什么
为什么
为什么


boya 2001-04-21
  • 打赏
  • 举报
回复
帮帮我
boya 2001-04-21
  • 打赏
  • 举报
回复
有没有人帮一帮我
boya 2001-04-21
  • 打赏
  • 举报
回复
no effect
ggyy 2001-04-21
  • 打赏
  • 举报
回复
,(void*)this
改为:this怎么样?
boya 2001-04-21
  • 打赏
  • 举报
回复
有人吗?
boya 2001-04-21
  • 打赏
  • 举报
回复
void CSlidingWindowsDoc::OnTransferStart()
{
hSendThread=(HANDLE)AfxBeginThread(SendThread,(void*)this,
THREAD_PRIORITY_NORMAL);

if (hSendThread==NULL)
{
printf("CreateSendThread() failed.\n");
_getch();
return;
}
///////////////////////////

..............
////////////////////////////
}

UINT SendThread(LPVOID lpParam)
{

CSlidingWindowsDoc* pDoc=(CSlidingWindowsDoc*)lpParam;

pDoc->UpdateAllViews(NULL);
//////////
..........
////////
}

错误是AssertFailure
错误地方是
CObject* p;
ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
(p = pMap->LookupTemporary(m_hWnd)) != NULL);
ASSERT((CWnd*)p == this);
boya 2001-04-21
  • 打赏
  • 举报
回复
上面的三种方法我都已经试过,可是依然不行,不知是我弄错了还是各位大哥给的不全
希望再给指教.
eggplant 2001-04-21
  • 打赏
  • 举报
回复
你能不能贴出源码,让俺看一看?
ggyy 2001-04-21
  • 打赏
  • 举报
回复
eggplant(拉拉) 的应该可以的吧!
boya 2001-04-21
  • 打赏
  • 举报
回复
hurry
eggplant 2001-04-20
  • 打赏
  • 举报
回复
必须进行强制转换,例如:
CMyDocument* pDoc = (CMyDocument*)Param;//Param为线程函数的参数
pDoc->UpdateAllViews();
sunriselx 2001-04-20
  • 打赏
  • 举报
回复
这样做:
加一个doc*全局指针,doc初始化时,把this给doc*
Luck04 2001-04-20
  • 打赏
  • 举报
回复
((CMainFrame *)AfxGetApp()->m_pMainFrame)->GetActiveDocument();?!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧