C++中使用多线程

使用的函数是CreateThread和CloseHandle相互配合。

举个简单的例子:

申明类变量 HANDLE hThread; DWORD ThreadID;

在需要创建线程的地方使用:

hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,NULL);

CloseHandle(hThread);

其中 ThreadFunc是一个回调函数,当然我试了,不管申明的是普通函数,还是类成员函数(需要使用static关键字,否则调用会报错),都不能直接操作窗体的控件,最后还的求助于消息映射SendMessage。不知道有没有方便一点的操作,大家有说是为了进程的安全机制,使得访问有点麻烦。复杂的操作,大家就使用自定义的消息映射吧。

提供我常用的思路:

CString str = "设置文本值";
HWND hWnd = ::FindWindow(NULL,"thread"); //thread为窗体标题
HWND hEdit = ::GetDlgItem( hWnd,IDC_EDIT1 );//根据控件Id
CEdit * editTest =(CEdit*) FromHandle(hEdit); //直接通过句柄转换为相应的控件,就可以直接操作控件了,这种还是很方便实用的。
editTest->SetWindowTextA(str);

你可能感兴趣的:(C++)