www.pudn.com > SDK 工具条,分割条,TREE 等控件演示代码.rar > treeview.cpp



#include "WinMain.h"
#include "treeview.h"
#include "childframe.h"
#include "listview11.h"
#include "childwindow.h"
extern b;
extern HINSTANCE hInst;
//extern HWND hwnd;
HWND hwndTV;
HWND hwndTV1;
HTREEITEM xiangqi;
HTREEITEM nowdingdan;
extern HWND hwnd;


HWND my(HWND hwndParent)
{
RECT rcClient; // dimensions of client area
// HWND hwndTV; // handle to tree-view control
int nLevel;
nLevel=2;
// Ensure that the common control DLL is loaded.
InitCommonControls();

// Get the dimensions of the parent window's client area, and create
// the tree-view control.
GetClientRect(hwndParent, &amt;rcClient);
hwndTV = CreateWindowEx(

WS_EX_CLIENTEDGE
|LVS_EX_GRIDLINES
,WC_TREEVIEW,
"Tree View",
// WS_VISIBLE | WS_CHILD
//| WS_BORDER

// | TVS_HASLINES
// |TVS_HASBUTTONS ,

WS_CHILD | WS_VISIBLE | TVS_HASLINES |
TVS_LINESATROOT |
TVS_HASBUTTONS
| TVS_SHOWSELALWAYS,

0,
0,
300,
200,
//350,
// rcClient.bottom,

hwndParent,
NULL,
// (HMENU)ID_TREEVIEW,
hInst,
NULL);
//COLORREF clrBk =RGB (3, 126, 129);
COLORREF clrBk =RGB(255, 255, 255);
//RGB(122, 162, 171);
// RGB(131, 131, 166);
//,150,175,230//150, 170, 50//RGB (3, 126, 129)
//COLORREF
TreeView_SetBkColor(hwndTV,clrBk);
//COLORREF clrBkt =RGB(150,20,2);RGB(90, 10, 10)
COLORREF clrBkt =RGB(88, 44, 44);
TreeView_SetTextColor(
hwndTV,
clrBkt
);


InitTreeViewImageLists(hwndTV);
// int i;
//for (i=0;i<2
// ;i++)
//{
insert();
//}

// insertItems(hwndTV);

return hwndTV;
}

HWND my1(HWND hwndParent)
{
RECT rcClient; // dimensions of client area
// HWND hwndTV1; // handle to tree-view control
int nLevel;
nLevel=2;
// Ensure that the common control DLL is loaded.
InitCommonControls();

// Get the dimensions of the parent window's client area, and create
// the tree-view control.
GetClientRect(hwndParent, &amt;rcClient);
hwndTV1 = CreateWindowEx(0,
WC_TREEVIEW,
"Tree View",
WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES,
0,
0,
rcClient.right,
rcClient.bottom,

hwndParent,
NULL,
// (HMENU)ID_TREEVIEW,
hInst,
NULL);

insertItems1(hwndTV1);

return hwndTV1;
}

void insertItems(HWND hWndTreeView)
{
TVINSERTSTRUCT tvis = { 0 };// 定义一个父根

tvis.item.mask = TVIF_TEXT | TVIF_PARAM;

tvis.item.pszText ="你好";

HTREEITEM hItem = TreeView_InsertItem(hWndTreeView, &amt;tvis);

//TreeView_SelectItem(hWndTreeView, hItem);
}



void insertItems1(HWND hWndTreeView)
{
TVINSERTSTRUCT tvis = { 0 };// 定义一个父根

tvis.item.mask = TVIF_TEXT | TVIF_PARAM;

tvis.item.pszText ="wo好";

HTREEITEM hItem = TreeView_InsertItem(hWndTreeView, &amt;tvis);

//HTREEITEM hCurrent= TreeView_SelectItem(hWndTreeView, hItem);


//HTREEITEM hCurrent = TreeView_GetSelection(hWndTreeView);
// HTREEITEM hParent = TreeView_GetParent(hWndTreeView, hCurrent);


HTREEITEM hParent = TreeView_GetParent(hWndTreeView, hItem);

TVINSERTSTRUCT tvs;
tvs.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
tvs.hParent = hParent;
tvs.item.pszText = TEXT("Sibling Item");
HTREEITEM hItemz=TreeView_InsertItem(hWndTreeView, &amt;tvs);
TVINSERTSTRUCT tvss;
tvss.item.mask ;
HTREEITEM hParent1 = TreeView_GetParent(hWndTreeView, hItemz);
tvss.hParent = hParent1;
tvss.item.pszText = TEXT("Sibling Item");

}


/*
void insert()
{

HTREEITEM itemnow = TreeView_GetSelection(hwndTV);

TVINSERTSTRUCT alls;

alls.item.mask = TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT;

if (!itemnow)
{

alls.hParent = TVI_ROOT;

alls.item.pszText = TEXT("Socket 网络程序数据库管理系统!!");

}
else
{

alls.hParent = itemnow;

alls.item.pszText = TEXT("Child Item");

}
alls.item.cchTextMax = lstrlen(alls.item.pszText)+1;

alls.hInsertAfter = TVI_LAST;

HTREEITEM hNewItem = TreeView_InsertItem(hwndTV,&amt;alls);


if (itemnow)
{

TreeView_Expand(hwndTV,itemnow,TVE_EXPAND);

}
if (hNewItem)
{
TreeView_Select(hwndTV,hNewItem,TVGN_CARET);
int i;

for (i=0 ; i < 5 ; i++)
{
HTREEITEM hNewItem = TreeView_InsertItem(hwndTV,&amt;alls);
}

for (i=0 ; i <10 ; i++)
{
alls.hParent = hNewItem;
alls.item.pszText = _szItem[i];
alls.item.cchTextMax = _tcslen(_szItem[i]);
HTREEITEM hNewItem= TreeView_InsertItem(hwndTV, &amt;alls);
}


}

// alls.hParent = hNewItem;
alls.item.pszText = "sss";
//alls.item.cchTextMax = _tcslen(SZ_FONTS);

hNewItem = TreeView_InsertItem(hwndTV, &amt;alls);

alls.item.mask = TVIF_TEXT;
alls.hParent = hNewItem;
int i;
for (i = 0; i < 1; i++)
{
alls.item.pszText = "dd";
//tvis.item.cchTextMax = _tcslen(_szCharSets[i]);
hNewItem = TreeView_InsertItem(hwndTV, &amt;alls);

//enumFonts(hWndTreeView, hItem, _baCharSets[i]);
}


}

*/

void insert()
{
TVINSERTSTRUCT head = {0};

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "--- &amt; 人民网络游戏世界 V2.06";
head.item.iImage= 0;
head.item.iSelectedImage =0;
HTREEITEM two = TreeView_InsertItem(hwndTV,&amt;head);

TreeView_SelectItem(hwndTV,two);

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "Game";
head.item.iImage= 1;
head.item.iSelectedImage =1;
head.hParent = two;
HTREEITEM game = TreeView_InsertItem(hwndTV,&amt;head);

// TreeView_SelectItem(hwndTV,game);
head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "四国军旗";
head.item.iImage= 2;
head.item.iSelectedImage =2;

head.hParent = game;
HTREEITEM siguo = TreeView_InsertItem(hwndTV,&amt;head);

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "国际象棋";

head.item.iImage= 2;
head.item.iSelectedImage =2;
head.hParent = game;
// HTREEITEM
xiangqi = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "中国象棋";
head.item.iImage= 6;
head.item.iSelectedImage =6;

head.hParent = game;
HTREEITEM cxq = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "物资管理系统";
head.item.iImage= 8;
head.item.iSelectedImage =8;
head.hParent = two;
HTREEITEM wuzi = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "定单查看";
head.item.iImage= 3;
head.item.iSelectedImage =3;
head.hParent = wuzi;
HTREEITEM dingdan = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "今天定单查看";

head.item.iImage= 5;
head.item.iSelectedImage =5;
head.hParent = dingdan;
//HTREEITEM
nowdingdan = TreeView_InsertItem(hwndTV,&amt;head);

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "以前定单查看";
head.item.iImage= 5;
head.item.iSelectedImage =5;

head.hParent = dingdan;
HTREEITEM olddingdan = TreeView_InsertItem(hwndTV,&amt;head);

// TreeView_Expand(hwndTV,wuzi,TVE_EXPAND);





head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "定单添加";
head.item.iImage= 3;
head.item.iSelectedImage =3;
head.hParent = wuzi;
HTREEITEM dingdanadd = TreeView_InsertItem(hwndTV,&amt;head);

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "定单修改";
head.item.iImage= 3;
head.item.iSelectedImage =3;
head.hParent = wuzi;
HTREEITEM dingdanupdate = TreeView_InsertItem(hwndTV,&amt;head);

head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "定单删除";
head.item.iImage= 3;
head.item.iSelectedImage =3;

head.hParent = wuzi;
HTREEITEM dingdandelete = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "网络视频";
head.item.iImage= 5;
head.item.iSelectedImage =5;
head.hParent = two;
HTREEITEM shipin = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "在线会议";
head.item.iImage= 4;
head.item.iSelectedImage =4;

head.hParent = shipin;
HTREEITEM huiyi = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "消息群发";

head.item.iImage= 4;
head.item.iSelectedImage =4;
head.hParent = shipin;
HTREEITEM xiaoxi = TreeView_InsertItem(hwndTV,&amt;head);


head.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE | TVIF_SELECTEDIMAGE;
head.item.pszText = "在线留言";
head.item.iImage= 4;
head.item.iSelectedImage =4;
head.hParent = shipin;
HTREEITEM liuyan = TreeView_InsertItem(hwndTV,&amt;head);

TreeView_Expand(hwndTV,two,TVE_EXPAND);


}


LRESULT treeview(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
LV_DISPINFO *lpdi = (LV_DISPINFO *)lParam;
#define lpnm ((LPNMHDR)lParam)
//#define lpnmTB ((LPNMTOOLBAR)lParam)
//#define kk ((int)wParam)
#define pnmtv ((LPNMTREEVIEW) lParam)

switch (lpnm->code)
{
// case TVN_BEGINDRAG:

// MessageBox(hwnd,"HELLO:\r\n 哈尔滨服务器ssss!","Barsdi",MB_OK | MB_ICONEXCLAMATION);
//Main_OnBeginDrag is an application-defined function
// Main_OnBeginDrag(hwndTV, (LPNMTREEVIEW)lParam);
// break;
// case TVN_SELCHANGING:
// {
// // if (pnmtv->itemNew.hItem == twos)
// {
// MessageBox(hwnd,"HELLO:\r\n 哈尔滨服务器ssss!","Barsdi",MB_OK | MB_ICONEXCLAMATION);
/// }
// }
// break;
case NM_DBLCLK:
if (lpnm->hwndFrom==hwndTV)
{

// BOOL TreeView_GetItem(hwndTV,LPTVITEM pitem);

HTREEITEM me= TreeView_GetSelection(hwndTV);
if (me==nowdingdan)
{

receivedata();
registerchildframe(hwnd);

InitListView11(hwndListViews111);
// b=1;

// dating(b);

// MessageBox(hwnd,"HELLO:\r\n 哈尔滨服务器ssss!","Barsdi",MB_OK | MB_ICONEXCLAMATION);
}
if (me == xiangqi)
{
b = 2;
dating(b);
}
}
break;
// case LVN_GETDISPINFO:

// if(lpdi->item.mask &amt; LVIF_IMAGE)
// {
// lpdi->item.iImage = 1;
// break;
// }
// Handle other cases here.
}
return FALSE;

}
/*
void setlistimage()
{
HIMAGELIST himlSmall;
HIMAGELIST himlLarge;
//set the image lists
himlSmall = ImageList_Create(16, 16, ILC_COLORDDB | ILC_MASK, 1, 0);
himlLarge = ImageList_Create(32, 32, ILC_COLORDDB | ILC_MASK, 1, 0);

if (himlSmall &amt;&amt; himlLarge)
{
HICON hIcon;

//set up the small image list
//hIcon = LoadImage(hInst, MAKEINTRESOURCE(IDI_DISK), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
/// ImageList_AddIcon(himlSmall, hIcon);

//set up the large image list
hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_DISK));
// ImageList_AddIcon(himlLarge, hIcon);
ImageList_AddIcon(himlSmall, hIcon);
ListView_SetImageList(hwndListViewswq, himlSmall, LVSIL_SMALL);
//ListView_SetImageList(hwndListViewswq, himlLarge, LVSIL_NORMAL);
}
}

*/

BOOL InitTreeViewImageLists(HWND hwndTV)
{
HIMAGELIST himl; // handle to image list
HBITMAP hbmp; // handle to bitmap

// Create the image list.
if ((himl = ImageList_Create(16, 16,
ILC_COLOR24 | ILC_MASK,
// RGB(3, 126, 129),
1,256)) == NULL)
return FALSE;

// Add the open file, closed file, and document bitmaps.
hbmp = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_HALLTREE));
// ImageList_Add(himl, hbmp,
//RGB(3, 126, 129));
// (HBITMAP)NULL);
if (ImageList_AddMasked (himl, hbmp, RGB (3, 126, 129)) == -1)
{
return FALSE;
}

DeleteObject(hbmp);

TreeView_SetImageList(hwndTV, himl,

TVSIL_NORMAL);
}