我想在 tree控件中插入东西 建立一个m_tree成员函数 然后使用 m_tree.insertitem 出现错误
大家看一下我的注释 以下是源代码
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
file.cpp
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#include "stdAfx.h"
#include "control.h"
#include "FILE.h"
#include <winsock.h>#include <windows.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "controlDlg.h"
#include "id.h"/////////////////////////////////////////////////////////////////////////////
CFILE dialog;
typedef struct
{
int id;
char filename[1024];
}REMOTE;
DWORD WINAPI ReceveId(LPVOID lparam);
SOCKET sock_serv,sock_cli;
struct sockaddr_in local;
CFILE::CFILE(CWnd* pParent /*=NULL*/)
: CDialog(CFILE::IDD, pParent)
{
m_addr = _T("");
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_CAMERA);
}
void CFILE::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFILE)
DDX_Control(pDX, IDC_TREE_DIR, m_tree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFILE, CDialog) //{{AFX_MSG_MAP(CFILE)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CFILE message handlers
HTREEITEM m_hRoot;
BOOL CFILE::OnInitDialog()
{
CDialog::OnInitDialog();
imagelist_tree.Create(18,18,ILC_COLOR16,10,10);
HICON hIcon;
hIcon=(HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_COMPUTER),IMAGE_ICON,16,16,0);
imagelist_tree.Add(hIcon);
m_tree.SetImageList(&imagelist_tree,LVSIL_NORMAL);
m_hRoot = m_tree.InsertItem("abc",0,0,0,0); //这里Insertitem没有错误 而下面Insertitem出现错误
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
WSADATA wsadata;
WSAStartup(MAKEWORD(2,2),&wsadata);
local.sin_port=htons(1234);
local.sin_family=AF_INET;
local.sin_addr.S_un.S_addr=INADDR_ANY;
sock_serv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
int localsize=sizeof(local);
bind(sock_serv,(struct sockaddr*)&local,sizeof(struct sockaddr));
listen(sock_serv,3);
sock_cli=accept(sock_serv,(struct sockaddr*)&local,&localsize);
if (sock_cli==INVALID_SOCKET)
{
return 0;
}
REMOTE remote;
memset((char *)&remote,0,sizeof(remote));
remote.id=remotefile;
send(sock_cli,(char *)&remote,sizeof(remote),0);
CreateThread(NULL,0,ReceveId,this,0,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
DWORD WINAPI ReceveId(LPVOID lparam)
{
CFILE * dlg=(CFILE *)lparam;
REMOTE remote;
memset((char*)&remote,0,sizeof(remote));
recv(sock_cli,(char *)&remote,sizeof(remote),0);
if (remote.id==remotefile)
{
dlg->getfile(remote.filename); }
closesocket(sock_cli);
closesocket(sock_serv);
WSACleanup();
return 0;
}BOOL CFILE::getfile(char *filename)
{
//CTreeCtrl m_tree; //如果把这里注释去掉就不会出现错误 但是控件上不显示内容
char buf[1024];
memset(buf,0,sizeof(buf));
memcpy(buf,filename,sizeof(filename));
m_tree.InsertItem(buf,0,0,m_hRoot,0); //<<<<<<<<<<<<<<<<<<<<<<<<<<<
m_tree.Expand(m_hRoot,TVE_EXPAND); //错误指向这里 错误信息:
//left of '.InsertItem' must have class/struct/union type
//left of '.Expand' must have class/struct/union type
return TRUE;
}//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<file.h//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#if !defined(AFX_FILE_H__449A3D70_A56C_4CE9_AFD7_6031E83D8F4B__INCLUDED_)
#define AFX_FILE_H__449A3D70_A56C_4CE9_AFD7_6031E83D8F4B__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FILE.h : header file
///////////////////////////////////////////////////////////////////////////////
// CFILE dialogclass CFILE : public CDialog
{
// Construction
public: static BOOL getfile(char *filename);
CFILE(CWnd* pParent = NULL);
enum { IDD = IDD_DIALOG_FILE };
CTreeCtrl m_tree; //m_tree
CString m_addr;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
protected:
CImageList imagelist_tree;
HICON m_hIcon;
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
};#endif
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//麻烦大家帮我看下 昨天弄了一下午没弄出来
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
大家看一下我的注释 以下是源代码
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
file.cpp
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#include "stdAfx.h"
#include "control.h"
#include "FILE.h"
#include <winsock.h>#include <windows.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "controlDlg.h"
#include "id.h"/////////////////////////////////////////////////////////////////////////////
CFILE dialog;
typedef struct
{
int id;
char filename[1024];
}REMOTE;
DWORD WINAPI ReceveId(LPVOID lparam);
SOCKET sock_serv,sock_cli;
struct sockaddr_in local;
CFILE::CFILE(CWnd* pParent /*=NULL*/)
: CDialog(CFILE::IDD, pParent)
{
m_addr = _T("");
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_CAMERA);
}
void CFILE::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFILE)
DDX_Control(pDX, IDC_TREE_DIR, m_tree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFILE, CDialog) //{{AFX_MSG_MAP(CFILE)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CFILE message handlers
HTREEITEM m_hRoot;
BOOL CFILE::OnInitDialog()
{
CDialog::OnInitDialog();
imagelist_tree.Create(18,18,ILC_COLOR16,10,10);
HICON hIcon;
hIcon=(HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_COMPUTER),IMAGE_ICON,16,16,0);
imagelist_tree.Add(hIcon);
m_tree.SetImageList(&imagelist_tree,LVSIL_NORMAL);
m_hRoot = m_tree.InsertItem("abc",0,0,0,0); //这里Insertitem没有错误 而下面Insertitem出现错误
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
WSADATA wsadata;
WSAStartup(MAKEWORD(2,2),&wsadata);
local.sin_port=htons(1234);
local.sin_family=AF_INET;
local.sin_addr.S_un.S_addr=INADDR_ANY;
sock_serv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
int localsize=sizeof(local);
bind(sock_serv,(struct sockaddr*)&local,sizeof(struct sockaddr));
listen(sock_serv,3);
sock_cli=accept(sock_serv,(struct sockaddr*)&local,&localsize);
if (sock_cli==INVALID_SOCKET)
{
return 0;
}
REMOTE remote;
memset((char *)&remote,0,sizeof(remote));
remote.id=remotefile;
send(sock_cli,(char *)&remote,sizeof(remote),0);
CreateThread(NULL,0,ReceveId,this,0,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
DWORD WINAPI ReceveId(LPVOID lparam)
{
CFILE * dlg=(CFILE *)lparam;
REMOTE remote;
memset((char*)&remote,0,sizeof(remote));
recv(sock_cli,(char *)&remote,sizeof(remote),0);
if (remote.id==remotefile)
{
dlg->getfile(remote.filename); }
closesocket(sock_cli);
closesocket(sock_serv);
WSACleanup();
return 0;
}BOOL CFILE::getfile(char *filename)
{
//CTreeCtrl m_tree; //如果把这里注释去掉就不会出现错误 但是控件上不显示内容
char buf[1024];
memset(buf,0,sizeof(buf));
memcpy(buf,filename,sizeof(filename));
m_tree.InsertItem(buf,0,0,m_hRoot,0); //<<<<<<<<<<<<<<<<<<<<<<<<<<<
m_tree.Expand(m_hRoot,TVE_EXPAND); //错误指向这里 错误信息:
//left of '.InsertItem' must have class/struct/union type
//left of '.Expand' must have class/struct/union type
return TRUE;
}//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<file.h//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#if !defined(AFX_FILE_H__449A3D70_A56C_4CE9_AFD7_6031E83D8F4B__INCLUDED_)
#define AFX_FILE_H__449A3D70_A56C_4CE9_AFD7_6031E83D8F4B__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FILE.h : header file
///////////////////////////////////////////////////////////////////////////////
// CFILE dialogclass CFILE : public CDialog
{
// Construction
public: static BOOL getfile(char *filename);
CFILE(CWnd* pParent = NULL);
enum { IDD = IDD_DIALOG_FILE };
CTreeCtrl m_tree; //m_tree
CString m_addr;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
protected:
CImageList imagelist_tree;
HICON m_hIcon;
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
};#endif
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//麻烦大家帮我看下 昨天弄了一下午没弄出来
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
解决方案 »
- VC中问题<<什么意思
- windows 程序设计!!(找目标进程)求助!
- 问一个Notepad的技术:关于双字节汉字的查找。
- IXMLDOMElement与IXMLDOMNode如何进行相互转变?
- 也许有点菜,不妨看看啦---高手指教!!
- 谁能提<<vc++技术内幕》,《c++primer》的下载地址?? 急急急 !! !
- 如何使用InstallShield
- 为什么AD端口的读入值会受到鼠标、键盘活动的强烈影响呢?我该怎么办那?(就剩这么多分数了))
- WINDOWS 驱动 寒江独钓 TDI带来的疑问
- 求助:vC++2015出错:编号的预期结尾后有多余文本
- 急..如何改变工具条按钮大小
- CSting类型转换为volatile USHORT *类型
这个应该不要是不是要 UpdateData 一下