论坛: 编程破解 标题: SDK问题-->TreeView 复制本贴地址    
作者: battle [battle]    论坛用户   登录
#include <windows.h>
#include <commctrl.h>
#pragma comment(lib,"comctl32.lib")
#include "resource.h"
#include <iostream>
using namespace std;

HWND hTreeView;
#define TREEVIEW 8600

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK TreeView(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow)
{
WNDCLASS wc;
HWND hWnd;
MSG msg;
char title[] = "Trojan";
char clas[] = "tt";

wc.style = CS_HREDRAW |CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszMenuName = NULL;
wc.lpszClassName = clas;

RegisterClass(&wc);

InitCommonControls();

hWnd = CreateWindow(clas,
title,
WS_OVERLAPPEDWINDOW,
0,0,650,500,
NULL,
NULL,
hInstance,
NULL);

ShowWindow(hWnd,iCmdShow);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
switch(Message)
{
case WM_CREATE:
{
hTreeView = CreateWindowEx(WS_EX_CLIENTEDGE,
WC_TREEVIEW,
"",
WS_CHILD|WS_VISIBLE|
TVS_LINESATROOT |
        TVS_HASBUTTONS
        | TVS_SHOWSELALWAYS,
0,0,300,480,
hWnd,
(HMENU)TREEVIEW,
(HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE),
NULL);
HIMAGELIST hImage;
HBITMAP hBit;
hImage = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 2, 0);
hBit = LoadBitmap((HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_BITMAP1));
ImageList_AddMasked(hImage,hBit,RGB(3,126,345));
TreeView_SetImageList(hTreeView,hImage, TVSIL_NORMAL);

TVINSERTSTRUCT tvis = { 0 };
tvis.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvis.item.pszText ="你好";
tvis.item.iImage = 1;
tvis.item.iSelectedImage = 0;
HTREEITEM hItem = TreeView_InsertItem(hTreeView, &tvis);
}
break;
case WM_NOTIFY:
switch(wParam)
{
case TREEVIEW:
TreeView(hWnd,Message,wParam,lParam);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,Message,wParam,lParam);
}
}
LRESULT CALLBACK TreeView(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
#define lpnm  ((LPNMHDR)lParam)
switch(lpnm->code)
{
case NM_CLICK:
HTREEITEM hRoot = TreeView_GetSelection(lpnm->hwndFrom);
TVITEM tvItem;
    tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hRoot;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
TreeView_SetItem(hTreeView, &tvItem);

// SendMessage(hTreeView,TVM_GETITEM,0,(LPARAM)&tvItem);
MessageBox(NULL,tvItem.pszText,"a",0); //怎么得到鼠标点的哪项的字符串..刚才添加的 "你好" ..点的时候得到 "你好"
break;
}
return FALSE;
}

地主 发表时间: 05-05-18 20:54

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号