高分求解简单问题?

yes_start 2001-03-07 03:21:00
对话框中有一个ProgressBar,对话框开辟一个新的线程接收外来数据,要求在接受数据的过程中更新ProgressBar,我该如何取得当前对话盒窗口指针来刷新ProgressBar.
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yes_start 2001-03-08
  • 打赏
  • 举报
回复
我有一个自己测试的程序,请问那位愿意帮我调试一下呢,十分感激
yes_start 2001-03-08
  • 打赏
  • 举报
回复
高手请再帮忙啊
xyzboat 2001-03-07
  • 打赏
  • 举报
回复
你的线程如果是用户界面线程就好办了,直接在你的类里定义一个指针,生成线程以后对他赋值就可以了.
如果是工作者线程,LPVOID 参数是可以传递任何指针的,包括结构体和类的指针,只是要转换一下:
struct A
{
int x;
int y;
};

A* a = new A;
a->x = 0;
a->y = 1;
LPVOID pVoid = (LPVOID)a;
CWinThread* pThread = AfxBeginThread ( Proc , pVoid );
UINT Proc ( LPVOID lParam )
{
A* b = (A*)lParam;
...
if ( NULL != b ) delete b;
}
ljbcsdnnet 2001-03-07
  • 打赏
  • 举报
回复
你可以在线程中添加一个变量
C...Dlg *m_pOwner; (C...Dlg的名字是你程序中定的)
添加函数
SetOwner(C...Dlg *pOwner)
{
m_pOwner = pOwner;
}
在对话框初始化函数中调用这个线程函数即可。
m_thread.SetOwner(this);

yes_start 2001-03-07
  • 打赏
  • 举报
回复
真是不好意思,我还不知道怎样可以把this传递到线程里边去呢,我直接将this当成参数传递到里边去,好像是m_hwnd已经不为空,但是使用UpdateData(false),仍然错误,请指教,能否写一段例程让我参考一下呢
xyzboat 2001-03-07
  • 打赏
  • 举报
回复
在起线程时,把this(假设你在对话框里起)传进线程不就可以了.

16,551

社区成员

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

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

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