📄 subject_51434.htm
字号:
<p>
序号:51434 发表者:俊俊 发表日期:2003-09-01 16:01:28
<br>主题:一个线程调用问题?
<br>内容:在程序的对话框中启动一个线程,来操作对话框中的控件,该如何实现?我在线程类中定义了这个对话框类的一个对象,然后对控件进行操作,不知何故编译通过,但是一执行到线程类的run()函数中的控件操作就出错?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-01 16:51:29
<br>内容:把你的线程函数和那个run函数贴出来看看
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2003-09-01 17:19:19
<br>内容:http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=37548&forum_id=<BR><BR>看完后,继承这个类,然后加上一个成员函数和指针来对应你想控制的控件如:<BR>public:<BR> void setEdit(CEdit* pEdit);<BR>private:<BR> CEdit* m_pEdit;<BR><BR>然后在run里面,你就可以想干吗就干嘛了。<BR>注意m_pEdit的管理,别抛异常了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:俊俊 回复日期:2003-09-02 12:34:03
<br>内容:2楼的天才,我没有用你写的这个类,我用的线程类是从CWinThread派生的,也是可以实现的吧?你这的成员函数setEdit()和成员变量m_pEdit,如何指向对话框中的控件并对它进行操作?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:天才 回复日期:2003-09-02 14:00:48
<br>内容:用CWinThread也行啊,不过我的是轻量级的,我的性能好呀,而且没有隐藏的问题(就是不可能有问题)<BR>你在运行线程之前将控件的控制指针通过成员函数或直接赋给线程对象的成员变量,能看懂吗?<BR><BR>以我的为例:<BR>class WorkThread : public SRXThread<BR>{<BR>public:<BR> WorkThread() {m_pEdit=0;}<BR> void setEdit(CEdit* pEdit) {m_pEdit=pEdit;}<BR>private:<BR> void run() {if(m_pEdit) {m_pEidt->...}}<BR>private:<BR> CEdit* m_pEdit;<BR>};<BR><BR>比如你的主对话框:<BR>BOOL CTestDlg::OnInitDialog()<BR>{<BR>...<BR> WorkThread* l_pThread=new WorkThread;<BR> l_pThread->setEdit(&m_Edit);//m_Edit是CTestDlg的一个控件成员<BR> l_pThread->start();<BR>...<BR>}<BR><BR>如果您觉得这样还不行,那我也帮不了你了。<BR>2003-9-3 9:35:48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -