收录日期:2018/08/15 02:07:20 时间:2016/05/22 09:12:34 标签:Windows Server
各位大侠:
    我用VC创建了一个工程当中需要创建线程:
代码:
DWORD WINAPI ReadIn(LPVOID pParam);

  void CMyClientDlg::OnConnect() //一个按钮事件
 {
    HANDLE Read = CreateThread(NULL,0,ReadIn,&ClientSock,0,NULL);
 }

 DWORD WINAPI ReadIn(LPVOID pParam)
{
   ::CMyClientDlg::m_list.AddString("Connect successfully !");
   return 0;
 }

其中m_list是一个CListBox类型的控件
报错是error C2228: left of '.AddString' must have class/struct/union type

是不是不允许我使用CMyClientDlg类中的函数啊
应如何达到改变 控件信息的目的?
你是不是对AddString理解上有错误?
我个人认为AddString可能是需要添加的一个class
但是你给的是一个CString
什么意思啊?

CListBox::AddString
This method adds a string to a list box. 

msds 是这样说的喔!!
而且将

m_list.AddString("Connect successfully !");

这一句放在按钮事件后面是可以运行的
error C2228: left of '.AddString' must have class/struct/union type
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你可以看看help,这句话的解释。
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20328156.html
msdn解析是:
The left side of the specified class member access operator (.) was not a class (or structure or union) type

应该怎样解决这个问题呢?
我已经将 m_list 更改成 CString 类了
不过:
m_list.Format("Connect successfully !");
UpdateData(false);

列表框中并没有显示 Connect successfully !

而且 UpdatdData()函数能不能在线程中调用有是一个问题啊!!!