在MFC创建的对话框程序中创建了一个线程如下:
void CXXXDlg::OnBnClickedXXX()
{//按键响应函数
DWORD dwThrdParam,dwThreadId;
HANDLE hThread;
hThread = CreateThread( NULL,0,ThreadFunc,&dwThrdParam,0,&dwThreadId);
}
同时定义函数如下:
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{
//这里不能直接调用类CXXXDlg中的成员变量和函数
return TRUE;
}
现在函数ThreadFunc不能直接调用这个程序中的类成员变量和函数了,请问应该怎样做呢
谢谢
void CXXXDlg::OnBnClickedXXX()
{//按键响应函数
DWORD dwThrdParam,dwThreadId;
HANDLE hThread;
hThread = CreateThread( NULL,0,ThreadFunc,&dwThrdParam,0,&dwThreadId);
}
同时定义函数如下:
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{
//这里不能直接调用类CXXXDlg中的成员变量和函数
return TRUE;
}
现在函数ThreadFunc不能直接调用这个程序中的类成员变量和函数了,请问应该怎样做呢
谢谢
解决方案 »
- Radio控件得到焦点时不响应得到焦点的函数
- 关于网页加载activex控件时间的问题
- 问哈呢,,在V8中的,,我想添加MSFlexGrid控件,,在那里找啊,,我找了半天都没得啊,,,在V6中就有啊。。。@!急啊,,,,,,
- 100分求media play 控件播放问题
- 估计没有多少人涉及到这个问题,但是强烈建议你来看看!
- InvalidateRect函数和WM_PAINT到底是怎么工作的??
- 鼠标托动窗口时, 当鼠标离开速度过快, 使窗口接收不到下一个移动消息, 窗口不会移动了, 有何办法解决
- 为什么要这样写?m_ofn.Flags = m_ofn.Flags | OFN_ENABLETEMPLATE。
- MFC 窗口响应程序
- 8月13日生日是什么星座?~~~~~~~~急!!!!!!
- 关于 CFileList 自绘问题
- 用vc编写程序,修改注册表
hThread = CreateThread( NULL,0,ThreadFunc,&dwThrdParam,
this/* dlg 的this指针*/,
&dwThreadId);
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{
CXXXDlg* pDlg = (CXXXDlg*)lpParam;
pDlg->对话框的函数或者成员。
}
-----------------------------------------------------------------------
你可以能需要重新设计数据结构,可能你设计的不太合理
这样做法编译都能不过的,传递参数 this 不正确
LPSECURITY_ATTRIBUTES lpsa,
DWORD cbStack,
LPTHREAD_START_ROUTINE lpStartAddr,
LPVOID lpvThreadParam,
DWORD fdwCreate,
LPDWORD lpIDThread
); 这个函数的第4个参数lpvThreadParam , 就是传入一个值给线程, 你把dlg的指针放入此参数就可以了。