线程中SetDlgItemText的一个小问题。高手帮帮忙。

jczff 2007-05-10 10:27:15
这是我的一个线程:UINT CFileTransferClientView::ThreadedGetFileFromRemoteSender(LPVOID pVoid)
{
CFileTransferClientView* pThis = (CFileTransferClientView*)pVoid;
AfxSocketInit(NULL); // make certain this is done somewhere in each thread (usually in InitInstance for main thread)
CSocket sockClient;
sockClient.Create();
sockClient.Connect( pThis->m_strTargetIP, PRE_AGREED_PORT ); // PRE_AGREED_PORT is #define'd as 8686
int dataLength, cbBytesRet, cbLeftToReceive; // used to monitor the progress of a receive operation
BYTE* recdData = NULL; // pointer to buffer for receiving data (memory is allocated after obtaining file size)
int pbInterval = 0; int curPB = 0; // progress bar variables
CFile destFile;
CFileException fe;
BOOL bFileIsOpen = FALSE;
cbLeftToReceive = sizeof( dataLength );
do
{
BYTE* bp = (BYTE*)(&dataLength) + sizeof(dataLength) - cbLeftToReceive;
cbBytesRet = sockClient.Receive( bp, cbLeftToReceive - simulate );
SetDlgItemText(IDC_EDIT1,"do");
}
while ( cbLeftToReceive > 0 );
return 0;
}
当我用到这一句SetDlgItemText(IDC_EDIT1,"do");
时,会出现
F:\FileTransferClientView.cpp(558) : error C2352: 'CWnd::SetDlgItemTextA' : illegal call of non-static member function
d:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(2156) : see declaration of 'SetDlgItemTextA'
搞不懂怎么会这样。
那我想实时修改文本框里面的内容,该怎么办呢
...全文
694 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jczff 2007-05-10
  • 打赏
  • 举报
回复
谢谢你们
wltg2001 2007-05-10
  • 打赏
  • 举报
回复
线程函数是成员函数,这个函数你一定设为静态了,而静态成员函数不能引用非静态成员.
hjon 2007-05-10
  • 打赏
  • 举报
回复
晕,一楼的比我快了两秒.

线程函数本身是静态的,或者是一个全局函数,

当线程函数是一个类的静态成员形式时,这个函数只能访问静态的成员或者成员函数,
或者你直接用一个指针来告诉函数的地址,就像用pThis来调用一样
hjon 2007-05-10
  • 打赏
  • 举报
回复
你应该用pThis->SetDlgItemText()这种形式来调用.
ouyh12345 2007-05-10
  • 打赏
  • 举报
回复
pThis->SetDlgItemText(IDC_EDIT1,"do");
源码来自:https://pan.quark.cn/s/41b9d28f0d6d 在信息技术领域,jQuery作为一个广受欢迎的JavaScript框架,显著简化了诸多操作,包括对HTML文档的遍历、事件的管理、动画的设计以及Ajax通信等。 本篇文档将深入阐释如何运用jQuery达成一个图片自动播放的功能,这种效果常用于网站的轮播展示或幻灯片演示,有助于优化用户与页面的互动,使网页呈现更加动态的视觉体验。 为了有效实施这一功能,首先需掌握jQuery的核心操作。 通过$符号作为接口,jQuery能够迅速选取DOM组件,例如$("#id")用于选取具有特定ID的元素,而$(".class")则能选取所有应用了某类class的元素。 在选定元素之后,可以执行多种行为,诸如事件监听、样式的变更、内容的更新以及动画的制作等。 关于“一个基于jQuery的图片自动播放功能”,首要任务是准备一组图片素材,这些素材将被整合至一个容器元素之。 例如,可以构建一个div元素,将其宽度设定为单张图片的尺寸,再借助CSS实现溢出内容的隐藏,从而构建出水平滚动的初始框架。 ```html
Image 1 Image 2
```接着,需要编写jQuery脚本以实现图片的自动切换。 这通常涉及到定时器的运用,以设定周期性间隔自动更换当前显示的图片。 通过使用`.fadeOut()`和`.fadeIn()`方法,能够实现图片间的平滑过渡,增强视觉效果。 ```javascript$(document).re...

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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