DWORD WINAPI newsocket(LPVOID lpparameter)
{
GetDlgItem(IDC_IP)->GetWindowText(ipfine,10);
return 0;
}编译错误提示:
--------------------Configuration: **** - Win32 Debug--------------------
Compiling...
ServerDlg.cpp
...: error C2660: 'GetDlgItem' : function does not take 1 parameters
...: error C2227: left of '->GetWindowTextA' must point to class/struct/union
Error executing cl.exe.

解决方案 »

  1.   

    这样的用法是CWnd的成员函数的用法,只能用在CWnd的派生类的代码中。
    你可以用API来实现:
    HWND hwnd=::FindWindow(NULL,_T("对话框标题"));
    HWND hIpHwnd=::GetDlgItem(hwnd,IDC_IP);
    TCHAR buff[256];
    GetWindowText(hwnd,buff,256);
      

  2.   

    在线程里面用 
    CMyDlg* pDlg = (CMyDlg*)lParam;
    然后就可以用 
    pDlg->GetDlgItem()了这个前提是你传线程参数的时候要传递 CMyDlg 的 this 指针过来
      

  3.   

    同意2楼的。
    在创建线程的时候,把主窗口的句柄(m_hWnd)传到线程里。
      

  4.   

    不要在线程中直接操作UI界面上东西,改用发送自定义消息到UI线程,在UI线程的消息响应函数中去更新界面上的信息
      

  5.   

    最好网络线程发消息去消息循环,然后界面窗口收消息后处理。如果实在要在线程中处理的话就::GetDlgItem(hwnd, IDC_IP)->GetWindowText(ipfine,10);