|
Posted on 2007-04-04 10:46 宋鹏 阅读(5177) 评论(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
谢谢!你写的文章对我很有帮助,以后要经常来,嘿嘿
加油++
|