📄 subject_54048.htm
字号:
<p>
序号:54048 发表者:忧河 发表日期:2003-09-25 10:01:31
<br>主题:关于对话框的问题!
<br>内容:我创建了一个对话框程序,在程序中我有创建了一个线程<BR>UINT CThreadPlay(LPVOID pParam)<BR>{<BR> //调用等待启动事件,如果没有启动事件信号将一直等待下去<BR> ::WaitForSingleObject(m_start,INFINITE);<BR> while(1)<BR> {<BR> //添加程序……<BR><BR> }<BR> return 0;<BR>}<BR><BR>而在while中我要添加程序,是对对话框中显示信息刷新,我想调用UpdateData(false),可是怎么获取对话框的句柄?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:iamhere 回复日期:2003-09-25 10:13:00
<br>内容:对话框句柄作为线程参数传入,例如:<BR>在创建线程时:<BR>CreateThread( NULL, 0 , CThreadPlay , this , 0 , NULL );<BR>其中假设是在对话框中创建线程,那么就用this代表对话框指针作为参数,<BR>否则用实际的对话框指针代替this<BR><BR>在线程函数中:<BR>UINT CThreadPlay( LPVOID pParam )<BR>{<BR> CXXXDlg *pDlg = (CXXXDlg *)pParam;<BR> <BR> //...<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijb 回复日期:2003-09-25 10:20:48
<br>内容:用参数传进来啊,LPVOID pParam
<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-25 10:33:58
<br>内容:还产生一个问题,在现成中,我直接调用它里面的函数就不可以pDlg->MyFunction(),但是如果这个用消息做就可以,这是为什么?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-25 10:41:01
<br>内容:只有你调用的这个函数MyFunction是类的public类型的成员函数时才可以
<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-25 10:42:36
<br>内容:MyFunction 就是我这对话框的成员函数,直接调用就出错了,如果我用消息做就可以,这是为什么?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-25 13:38:18
<br>内容:是public类型的成员函数吗?<BR><BR>是编译时出错还是运行时出错?
<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-29 10:07:13
<br>内容:是它的成员函数!是在运行时出错!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-29 10:24:22
<br>内容:自己Debug一下,看看报错是在哪条语句上。
<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-29 10:31:20
<br>内容:就是在UpdateData这句上!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-29 10:35:27
<br>内容:的确如此,<BR>如果在线程函数中的调用中出现对话框的UpdateData函数,的确会出错的。
<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-29 10:51:13
<br>内容:恩。这样只能用传消息了! 这个可以改进吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-29 14:19:26
<br>内容:可以使用SetDlgItemData或者SetDlgItemText之类的函数取代UpdateData
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -