MFC线程使用
一般用线程查找一些文件,然后发消息出去插入到MFC的List中,一般配合虚拟列表使用比较好。
注意:MFC不能在子线程内操作控件,所以要发出去。
定义一个消息:
#define WM_FILE_INFO WM_APP +108
建一个线程:
void FileInfoFunctionDlg::FindList()
{
HANDLE hThread = CreateThread(NULL, 0, FindThread, this, 0, NULL);
if (hThread != NULL)
{
CloseHandle(hThread);
hThread = NULL;
}
}
线程函数:
DWORD WINAPI FindConsoleBackUpMachineInfoThread(void* pParam)
{
FILE_INFO FileInfo; //定义的结构体
//查询数据
::SendMessage(_hwndFileTimeMachine, WM_FILE_INFO, (WPARAM)&FileInfo, NULL); //发送消息出去
}
接受消息函数:
BOOL CClientBackupFileViewDlg::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
if (message == WM_CONSOLE_FILE_BACKUP_TIME_MACHINE_THREAD_START)
{
FileInfo* pInfo = (FileInfo*)wParam;
//操作List
return TRUE;
}
return CDialog::OnWndMsg(message, wParam, lParam, pResult);
}