|
Posted on 2007-04-04 10:46 宋鹏 阅读(5229) 评论(4) 编辑 收藏 引用 所属分类: Evc Debug Code
ClistCtrl(MFC)
BOOL CTest::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here
//SP-A1.用工具栏画一个CListCtrl控件 //SP-A2.插入栏(列)到控件 ((CListCtrl *)GetDlgItem(IDC_LIST1))->InsertColumn(0, _T("Name"), LVCFMT_LEFT); ((CListCtrl *)GetDlgItem(IDC_LIST1))->InsertColumn(1, _T("Scores"), LVCFMT_LEFT);
//SP-A3.设置各个栏的宽度 ((CListCtrl *)GetDlgItem(IDC_LIST1))->SetColumnWidth(0,50); ((CListCtrl *)GetDlgItem(IDC_LIST1))->SetColumnWidth(1,50);
//SP-23插入栏,并制定高度 //或((CListCtrl *)GetDlgItem(IDC_LIST1))->InsertColumn(1, _T("Scores"), LVCFMT_LEFT,50);
// int nColumnCount = ((CListCtrl *)GetDlgItem(IDC_LIST1))->GetHeaderCtrl()->GetItemCount();
//SP-A4.1.插入行1 LV_ITEM lvitem; //LVITEM结构体
lvitem.mask=LVIF_TEXT; //指出对成员中的哪些数据进行设置 lvitem.pszText=L"vv"; //将文本设为vv lvitem.iItem=0; //索引值为0 lvitem.iSubItem=0; //没有子项 ((CListCtrl *)GetDlgItem(IDC_LIST1))->InsertItem(&lvitem); //SP-A4.2.插入行2 //((CListCtrl *)GetDlgItem(IDC_LIST1))->SetItemText(0,0,L"aa"); //((CListCtrl *)GetDlgItem(IDC_LIST1))->SetItemText(0,1,L"bb");
return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
ListView(API) 这是工程文件 下载
//---------------------------------------------------------------------- // DoCreateMain - Process WM_CREATE message for window. // LRESULT DoCreateMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) { HWND hwndCB;
int nHeight; HWND hwndLV; LPCREATESTRUCT lpcs;
// Create a command bar. hwndCB = CommandBar_Create (hInst, hWnd, IDC_CMDBAR);
// Add exit button to command bar. CommandBar_AddAdornments (hwndCB, 0, 0);
//SP-A1转换LPARAM // Convert lParam into pointer to create structure. lpcs = (LPCREATESTRUCT) lParam;
//SP-A2创建列表查看控件 // // Create the list view control. // hwndLV = CreateWindowEx (0, WC_LISTVIEW, TEXT (""), LVS_REPORT | LVS_SINGLESEL | LVS_OWNERDATA | WS_VISIBLE | WS_CHILD | WS_VSCROLL, 0, nHeight, lpcs->cx, lpcs->cy - nHeight, hWnd, (HMENU)IDC_LISTVIEW, lpcs->hInstance, NULL); //SP-A3增加列 // Add columns. { LVCOLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT | LVCF_SUBITEM; lvc.fmt = LVCFMT_LEFT; lvc.cx = 150; lvc.pszText = TEXT ("Name"); lvc.iSubItem = 0; SendMessage (hwndLV, LVM_INSERTCOLUMN, 0, (LPARAM)&lvc);
lvc.mask |= LVCF_SUBITEM; lvc.pszText = TEXT ("Type"); lvc.cx = 100; lvc.iSubItem = 1; SendMessage (hwndLV, LVM_INSERTCOLUMN, 1, (LPARAM)&lvc);
lvc.mask |= LVCF_SUBITEM; lvc.pszText = TEXT ("Size"); lvc.cx = 100; lvc.iSubItem = 2; SendMessage (hwndLV, LVM_INSERTCOLUMN, 2, (LPARAM)&lvc); }
return 0; }
//SP-A4改变窗口大小,显示列表查看控件 //---------------------------------------------------------------------- // DoSizeMain - Process WM_SIZE message for window. // LRESULT DoSizeMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam){ HWND hwndLV; RECT rect;
hwndLV = GetDlgItem (hWnd, IDC_LISTVIEW);
// Adjust the size of the client rect to take into account // the command bar height. GetClientRect (hWnd, &rect); rect.top += CommandBar_Height (GetDlgItem (hWnd, IDC_CMDBAR));
SetWindowPos (hwndLV, NULL, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER); return 0; }
Feedback
# re: 创建虚拟列表ClistCtrl(MFC)&&ListView(API) 回复 更多评论
2007-04-04 11:04 by
菜鸟上手之用,呵呵
# re: 创建虚拟列表ClistCtrl(MFC)&&ListView(API) 回复 更多评论
2007-04-04 11:24 by
失败!
失败!
失败!没有明确提到两个关键点,估计普通人看了更糊涂
# re: 创建虚拟列表ClistCtrl(MFC)&&ListView(API) 回复 更多评论
2007-04-04 11:37 by
是哪两个关键点呢,还望明示
# re: 创建虚拟列表ClistCtrl(MFC)&&ListView(API) 回复 更多评论
2007-08-24 11:49 by
谢谢!你写的文章对我很有帮助,以后要经常来,嘿嘿
加油++
|