这是我的一个线程:UINT CFileTransferClientView::ThreadedGetFileFromRemoteSender(LPVOID pVoid)
{
CFileTransferClientView* pThis = (CFileTransferClientView*)pVoid;
AfxSocketInit(NULL); // make certain this is done somewhere in each thread (usually in InitInstance for main thread)
CSocket sockClient;
sockClient.Create();
sockClient.Connect( pThis->m_strTargetIP, PRE_AGREED_PORT ); // PRE_AGREED_PORT is #define'd as 8686
int dataLength, cbBytesRet, cbLeftToReceive; // used to monitor the progress of a receive operation
BYTE* recdData = NULL; // pointer to buffer for receiving data (memory is allocated after obtaining file size)
int pbInterval = 0; int curPB = 0; // progress bar variables
CFile destFile;
CFileException fe;
BOOL bFileIsOpen = FALSE;
cbLeftToReceive = sizeof( dataLength );
do
{
BYTE* bp = (BYTE*)(&dataLength) + sizeof(dataLength) - cbLeftToReceive;
cbBytesRet = sockClient.Receive( bp, cbLeftToReceive - simulate );
SetDlgItemText(IDC_EDIT1,"do");
}
while ( cbLeftToReceive > 0 );
return 0;
}
当我用到这一句SetDlgItemText(IDC_EDIT1,"do");
时,会出现
F:\FileTransferClientView.cpp(558) : error C2352: 'CWnd::SetDlgItemTextA' : illegal call of non-static member function
d:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(2156) : see declaration of 'SetDlgItemTextA'
搞不懂怎么会这样。
那我想实时修改文本框里面的内容,该怎么办呢
{
CFileTransferClientView* pThis = (CFileTransferClientView*)pVoid;
AfxSocketInit(NULL); // make certain this is done somewhere in each thread (usually in InitInstance for main thread)
CSocket sockClient;
sockClient.Create();
sockClient.Connect( pThis->m_strTargetIP, PRE_AGREED_PORT ); // PRE_AGREED_PORT is #define'd as 8686
int dataLength, cbBytesRet, cbLeftToReceive; // used to monitor the progress of a receive operation
BYTE* recdData = NULL; // pointer to buffer for receiving data (memory is allocated after obtaining file size)
int pbInterval = 0; int curPB = 0; // progress bar variables
CFile destFile;
CFileException fe;
BOOL bFileIsOpen = FALSE;
cbLeftToReceive = sizeof( dataLength );
do
{
BYTE* bp = (BYTE*)(&dataLength) + sizeof(dataLength) - cbLeftToReceive;
cbBytesRet = sockClient.Receive( bp, cbLeftToReceive - simulate );
SetDlgItemText(IDC_EDIT1,"do");
}
while ( cbLeftToReceive > 0 );
return 0;
}
当我用到这一句SetDlgItemText(IDC_EDIT1,"do");
时,会出现
F:\FileTransferClientView.cpp(558) : error C2352: 'CWnd::SetDlgItemTextA' : illegal call of non-static member function
d:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(2156) : see declaration of 'SetDlgItemTextA'
搞不懂怎么会这样。
那我想实时修改文本框里面的内容,该怎么办呢
解决方案 »
- WaitForSingleObject 等待时间如何设置?
- SetWindowpos问题
- 中国古人的智慧<<战国策>>东周欲为稻
- 我要点击Button“导出”,弹出一个保存文件的对话框,将一个文本框中的内容保存到文本文件中(该文本文件是新建的),怎么写代码?
- 请问如果这样写会不会有什么问题?
- 加密高手请进
- 请问大家一个很菜的问题,拖拽的事件是什么?(给第一个答对的),立即给分
- atl做一个excel插件 要响应 SheetChange事件的问题
- 输出文字到屏幕,如何设置他的效果啊?
- 请问如何去掉IWebBrowser控件窗口的边框(border)?
- 模态/非模态窗口判断问题
- 那句话怎么说来着,十年技术像乞丐...
或者你直接用一个指针来告诉函数的地址,就像用pThis来调用一样