MFC线程访问窗体控件的问题!

hufanrong12345 2019-06-21 02:12:33
简单的对话框倒计时程序,窗体只有Static Text(ID:IDC_STATIC1)和Progress Control两个控件,倒计时60秒!
Static Text显示数字60,59,58... ...
Progress Control显示进度

在线程中,使用
CWnd* h_d2 =AfxGetApp()->GetMainWnd();
h_d2->GetDlgItem(IDC_STATIC1)->SetWindowTextW(_T("倒计时:"))更新 Static Text正常
但是使用h_d2->GetDlgItem(IDC_PROGRESS1)->SetRange(0,60)却不行,请问各位大佬什么原因呢?

小白刚接触MFC求教!
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hufanrong12345 2019-06-23
  • 打赏
  • 举报
回复
引用 6 楼 schlafenhamster 的回复:
CWnd* h_d2
应该是 CYourDlg*
CYourDlg* h_d2 =( CYourDlg*)AfxGetApp()->GetMainWnd();

已经搞定了
sichuanwww 2019-06-22
  • 打赏
  • 举报
回复
引用 1 楼 叶恭介1989 的回复:
发消息让对话框更新数据,不要在线程操作界面
schlafenhamster 2019-06-22
  • 打赏
  • 举报
回复
CWnd* h_d2
应该是 CYourDlg*
CYourDlg* h_d2 =( CYourDlg*)AfxGetApp()->GetMainWnd();
hufanrong12345 2019-06-22
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
进度条要用 SetPos(x)
h_d2->GetDlgItem(IDC_PROGRESS1)->SetPos(now);
SetRange(0,60); 是初始化 !

进度条的基本使用我会,就是在使用h_d2->GetDlgItem(IDC_PROGRESS1)->SetPos(3)的时候提示找不到定义。
schlafenhamster 2019-06-21
  • 打赏
  • 举报
回复
进度条要用 SetPos(x)
h_d2->GetDlgItem(IDC_PROGRESS1)->SetPos(now);
SetRange(0,60); 是初始化 !
hufanrong12345 2019-06-21
  • 打赏
  • 举报
回复
引用 2 楼 schlafenhamster 的回复:
GetDlgItem(IDC_PROGRESS1)->SetRange(0,60); 在对话框 初始化中


为什么Static Text可以直接使用呢?
schlafenhamster 2019-06-21
  • 打赏
  • 举报
回复
GetDlgItem(IDC_PROGRESS1)->SetRange(0,60); 在对话框 初始化中
叶恭介叶恭介 2019-06-21
  • 打赏
  • 举报
回复
发消息让对话框更新数据,不要在线程操作界面

15,471

社区成员

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

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