15,979
社区成员
发帖
与我相关
我的任务
分享
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include "tchar.h"
#include "commctrl.h"
#pragma comment(lib,"comctl32.lib")
#define WINDOW_CLASS_NAME "WINCLASS"
HWND hlistview;
HINSTANCE instance;
TCHAR listindex[] = _T("%d");
TCHAR listcont1[] =_T("房间%d");
TCHAR listcont2[] =_T("电器%d");
TCHAR listcont3[] =_T("汽车%d");
TCHAR listcont4[] =_T("飞机%d");
void InsertColumn()
{
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT;
lvc.fmt=LVCFMT_CENTER;
lvc.pszText ="序号";
lvc.cx = 100;
SendMessage(hlistview,LVM_INSERTCOLUMN,0,(LPARAM)&lvc);
lvc.pszText = "实例1";
lvc.cx = 150;
SendMessage(hlistview,LVM_INSERTCOLUMN,1,(LPARAM)&lvc);
lvc.pszText = "实例2";
SendMessage(hlistview,LVM_INSERTCOLUMN,2,(LPARAM)&lvc);
lvc.pszText = "实例3";
SendMessage(hlistview,LVM_INSERTCOLUMN,3,(LPARAM)&lvc);
lvc.pszText = "实例4";
SendMessage(hlistview,LVM_INSERTCOLUMN,4,(LPARAM)&lvc);
}
void InitListView()
{
int i=0;
int j=0;
CHAR buffer[20];
for(i=5;i>0;i--)
{
LV_ITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.iItem = 0;
lvi.iSubItem = 0;
wsprintf(buffer,listindex,(i));
lvi.pszText =buffer;
SendMessage(hlistview,LVM_INSERTITEM,0,(LPARAM)&lvi);
lvi.iSubItem++;
wsprintf(buffer,listcont1,(i));
lvi.pszText =buffer;
SendMessage(hlistview,LVM_SETITEM,0,(LPARAM)&lvi);
lvi.iSubItem++;
wsprintf(buffer,listcont2,(i));
lvi.pszText =buffer;
SendMessage(hlistview,LVM_SETITEM,0,(LPARAM)&lvi);
lvi.iSubItem++;
wsprintf(buffer,listcont3,(i));
lvi.pszText =buffer;
SendMessage(hlistview,LVM_SETITEM,0,(LPARAM)&lvi);
lvi.iSubItem++;
wsprintf(buffer,listcont4,(i));
lvi.pszText =buffer;
SendMessage(hlistview,LVM_SETITEM,0,(LPARAM)&lvi);
}
}
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hinstance, HINSTANCE hprevinstance,
PSTR szcmdLine, int icmdshow)
{
HWND hwnd;
MSG msg;
WNDCLASSEX winclass;
InitCommonControls();
instance=hinstance;
winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hinstance;
winclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
winclass.hCursor = LoadCursor(NULL,IDC_ARROW);
winclass.hbrBackground= GetStockObject(WHITE_BRUSH);
winclass.lpszMenuName = NULL;
winclass.lpszClassName= WINDOW_CLASS_NAME;
winclass.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
if(!RegisterClassEx(&winclass))
return (0);
if(!(hwnd = CreateWindowEx(NULL,
WINDOW_CLASS_NAME,
"WinFormPrj",
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
240,262,
800,500,
NULL,
NULL,
hinstance,
NULL)))
return (0);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
case WM_CREATE:
{
hlistview = CreateWindowEx(NULL,_T("SysListView32"),NULL,LVS_REPORT | WS_CHILD |WS_VISIBLE,
0,0,200,200,hwnd,NULL,instance,NULL);
InsertColumn();
InitListView();
//SendMessage(hlistview,LVM_SETTEXTCOLOR,0,(LPARAM)RGB(0,0,0));
//SendMessage(hlistview,LVM_SETBKCOLOR,0,(LPARAM)RGB(0,0,0));
//SendMessage(hlistview,LVM_SETTEXTBKCOLOR,0,(LPARAM)RGB(0,0,0));
//ListView_SetItemState(hlistview,1,LVIS_SELECTED ,LVIS_SELECTED);
ListView_SetExtendedListViewStyle(hlistview,1,LVIS_SELECTED ,LVS_EX_FULLROWSELECT);
return (0);
} break;
case WM_SIZE:
{
MoveWindow(hlistview,0,0,LOWORD(lparam),HIWORD(lparam),TRUE);
//调用MoveWindow来改变列表视图控件的大小使得它覆盖整个的客户区
} break;
case WM_DESTROY:
{
PostQuitMessage(0);
return (0);
} break;
default:break;
}
return (DefWindowProc(hwnd,msg,wparam,lparam));
}
SetFocus(hlistview); //获得焦点
ListView_SetItemState(hlistview,0,LVIS_SELECTED,LVIS_SELECTED); //使第一行处于选择中状态
ListView_SetExtendedListViewStyle(hlistview,LVS_EX_FULLROWSELECT); //设置整行选择风格