MFC如何在自定义函数中调用控件变量
我做的是生产者—消费者问题,要在进程起点函数DWORDWINAPIProducer(LPVOIDlpPara)中输出信息到编辑框控件,但调试时无法引用,怎么做啊?...
我做的是生产者—消费者问题,要在进程起点函数DWORD WINAPI Producer(LPVOID lpPara)中输出信息到编辑框控件,但调试时无法引用,怎么做啊?
展开
2个回答
展开全部
Producer是一个线程的起始函数吧?应该不是进程。
您可以将编辑框控件的指针或句柄通过lpPara参数传入到线程里面。
例如:
HWND hWnd = GetDlgItem(hWndDlg,IDC_EDIT);
_beginthreadex(...Producer,(LPVOID)hWnd,....);
在线程里:
DWORD WINAPI Producer(LPVOID lpPara)
{
HWND hWnd=(HWND)lpPara;
if(hWnd != NULL)
SetWindowText(hWnd,TEXT("123"));
}
您可以将编辑框控件的指针或句柄通过lpPara参数传入到线程里面。
例如:
HWND hWnd = GetDlgItem(hWndDlg,IDC_EDIT);
_beginthreadex(...Producer,(LPVOID)hWnd,....);
在线程里:
DWORD WINAPI Producer(LPVOID lpPara)
{
HWND hWnd=(HWND)lpPara;
if(hWnd != NULL)
SetWindowText(hWnd,TEXT("123"));
}
追问
我要对多个控件传值,我想问下为什么在按钮的响应函数中可以引用多个控件变量,而自定义函数不行,有什么办法可以在自定义的函数中也能引用控件变量?
追答
自定义函数也可以的,你把函数定义为你需要用的控件的父窗口的成员函数即可。
或者将需要用的控件的父窗口的CWnd指针或HWND句柄作为该函数的参数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询