使用的函数是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);

相关文章:

  • 2021-10-03
  • 2021-05-16
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2021-10-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2021-06-12
相关资源
相似解决方案