MFC工作线程里面问题 本帖最后由 wasedasai 于 2011-09-06 10:40:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要在线程里操作界面元素可以通过发消息的方式让主线程操作如果你需要返回值可以通过同步机制建立相互通信看看这篇文章会不会对你有帮助http://blog.csdn.net/xianglitian/article/details/6729851 你的线程函数是全局的,而不是属于对话框类的,自然不能调用cwnd成员函数IsDlgButtonChecked,更没有IDC_CHECK1这样的资源,当然你可以调用微软的API函数,格式如下:UINT IsDlgButtonChecked( HWND hDlg, // handle to dialog box int nIDButton // button identifier);解决的办法很简单,一个是你给线程函数传递一个参数,把对话框的指针传递过去,另一个方法就是把你的线程函数作为对话框的静态成员函数~~~ 线程函数中不要直接操作UI对象,而是发送消息给主线程来操作UI 对象. AfxBeginThread创建线程,你的线程函数的原型不对UINT __cdecl ThreadProc(LVPOID lParam); 传个句柄试试void SaveDate::OnBnClickedButton1(){CWinThread* mythread = AfxBeginThread(MakeFile,(LPVOID)&m_hWnd,THREAD_PRIORITY_NORMAL,0,0,NULL);}BOOL MakeFile( LPVOID pParam){if( BST_CHECKED == ::IsDlgButtonChecked( *(HWND*)pParam, IDC_CHECK1 ) )read.ReadPlan();}QQ 2490152755 参数里面传递一个this指针就可以了。 在创建线程时,将This指针传入线程函数.然后在线程函数中this->sendmessage()不知道这样可以不,楼主可以试一下 如何读取网页并接收返回的数据? VC如何检测电脑有没安装realplayer 如何在视图区嵌入属性对话框? SafeArrayGetElement的内存释放问题 80分求<MFC Windows程序设计>第二版中文版 关于com的import问题 请问如何使LISTCTRL控件某一列呈多行显示,例如。。。 怎样在一个位图背景的对话框里面加入一个透明的web浏览器 怎么将数据组织成jpg格式数据? 如何调整分割窗口的大小 串口数据存储到TXT文件中 新手求助!MFC CString对象赋值问题
可以通过发消息的方式让主线程操作
如果你需要返回值可以通过同步机制建立相互通信
看看这篇文章会不会对你有帮助
http://blog.csdn.net/xianglitian/article/details/6729851
UINT IsDlgButtonChecked(
HWND hDlg, // handle to dialog box
int nIDButton // button identifier
);解决的办法很简单,一个是你给线程函数传递一个参数,把对话框的指针传递过去,另一个方法就是把你的线程函数作为对话框的静态成员函数~~~
UINT __cdecl ThreadProc(LVPOID lParam);
{CWinThread* mythread = AfxBeginThread(MakeFile,(LPVOID)&m_hWnd,THREAD_PRIORITY_NORMAL,0,0,NULL);}BOOL MakeFile( LPVOID pParam)
{
if( BST_CHECKED == ::IsDlgButtonChecked( *(HWND*)pParam, IDC_CHECK1 ) )
read.ReadPlan();
}
QQ 2490152755