VC下,如何在线程中给一Edit填内容?
线程中只能调用静态函数吗?
静态函数中怎么样调用控件?

解决方案 »

  1.   

    发送WM_SETTEXT消息设置EDIT的内容,线程函数只能是全局函数或者静态函数
      

  2.   

    DWORD __stdcall ThreadFun(void *p)
    {
        HWND hwnd = *(HWND*)p;
        SetWindowText(hwnd,"dddd");
        return 0;
    }DWORD dwThreadId; 
        HANDLE hThread = NULL;
        CWnd *pWnd = GetDlgItem(IDC_EDIT1);//取edit
    hThread = CreateThread(NULL,0,ThreadFun,&pWnd->m_hWnd,0,&dwThreadId);
    if (hThread == NULL) 
    {
    MessageBox("CreateThread failed.", "main", MB_OK );
    }
    else 
    {
    CloseHandle( hThread );
    }
      

  3.   

    // 线程函数
    DWORD WINAPI DoBillFile(void *param)
    {
    bOnImport = TRUE;
             // 下面处理传递的参数
             // CBILL2DBDlg 是对话框类
    CBILL2DBDlg *m_pMyDlg = (CBILL2DBDlg *)param;
             // 给对话框上Edit控件(IDC_EDIT1)设置内容
             SetDlgItemText(m_pMyDlg->GetSafeHwnd(), IDC_EDIT1, "hello");
    return TRUE;
    }启动线程时 传递this
    // 启动线程
    hHandle = ::CreateThread(NULL, 0, DoBillFile, this, 0, &nThreadID);