在一个函数执行期间如何响应界面按钮的点击?

graywolf311 2007-06-20 08:35:13
是不是得用多线程方式来实现?能否给出关键代码?
...全文
221 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2007-06-25
  • 打赏
  • 举报
回复
可以定义一个数据结构存放你的数据,然后将数据指针传入线程函数;或者直接将对话框对象的指针传入线程函数;如果要操纵界面,将对话框的窗口句柄传入线程函数。
graywolf311 2007-06-25
  • 打赏
  • 举报
回复
第一次写多线程,按楼上的指导,新开一个线程(由ThreadFunc函数实现)来执行主要的运算工作,但还是碰到一些问题。具体来讲,我的线程函数定义在自己的一个类中:
class CMyDialog : public CDialog
{
public:
……
static UINT ThreadFunc(LPVOID pParam);
……
}

响应Button1按钮点击:
void CMyDialog::OnButton1()
{
CWinThread *pThread = AfxBeginThread(ThreadFunc, 0, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
}

线程函数的实现:
UINT ThreadFunc(LPVOID pParam)
{
……
}

ThreadFunc()中需要用到多个CMyDialog类中的成员函数及变量,请问应当如何引用?
shicheng107 2007-06-20
  • 打赏
  • 举报
回复
是的。你可以新开一个线程进行需要很长时间的运算。

用CreateThread就好了,查了MSDN,不难的。

15,979

社区成员

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

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