http://blog.csdn.net/lovton/article/details/6527208
1.建立一個對象m_LogList
步驟:在對話listcontrol控件右鍵點擊添加變量-》類別Control->變量類型CListCtrl-》變量名m_LogList-》完成。
2.listcontrol// 設置擴展風格l風格
在OnInitDialog()函數內添加下面代碼:
DWORD dwStyle = m_LogList.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//鼠標選中某行使整行高亮(只適用與屬性為report 風格的listctrl )
dwStyle |= LVS_EX_GRIDLINES;// 列表有網格線(只適用與report 風格的listctrl )
m_LogList.SetExtendedStyle(dwStyle); // 設置擴展風格
3.插入數據
插入列頭:
int nIndex = 0;
m_LogList.InsertColumn(nIndex++, _T("序號"), LVCFMT_CENTER,60);
m_LogList.InsertColumn(nIndex++, _T("日志類型"), LVCFMT_CENTER,80);
插入行頭:m_LogList.InsertItem(i, Int32ToCString(m_pHQReadLogInfo[i].nNo));//把整型轉換為字符串函數(Int32ToCString),i為第幾行,從0開始。
插入列表中的內容: m_list.SetItemText(i, j, "jacky");// 設置其它列數據,i,j分別表示第i行和第j列,i和j分別從0開始,如果已經插入了表頭,j就從1開始。“jacky”報錯,那么在屬性中字符集改為“使用多字節符集”
在具體插入哪行:http://blog.csdn.net/lovton/article/details/6527208
4.點擊右鍵出現菜單。
具體步驟:右鍵點擊項目名-》添加-》資源-》Menu,建立主菜單。
添加函數,在對話框中右鍵點擊listcontrol-》類向導-》消息-》WM_CONTEXTMENU->函數名稱(OnContextMenu)
函數添加如下內容:注意 IDR_MENU1為菜單名 IDC_LIST1 listcontrol的ID名
void CJGHQLOGTOOLDlg::OnContextMenu(CWnd* pWnd, CPoint point) { // TODO: 在此處添加消息處理程序代碼 CWnd* pCtl = GetDlgItem(IDC_LIST1); if (pWnd == pCtl) { m_menu.LoadMenu(IDR_MENU1); CMenu *pPopup; pPopup = m_menu.GetSubMenu(0); //獲得子菜單指針 pPopup->EnableMenuItem(ID_TOEXCEL,MF_BYCOMMAND|MF_ENABLED); //允許菜單項使用 pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); //顯示彈出菜單,參數依次為(鼠標在菜單左邊|跟蹤右鍵,x,y,this) pPopup->Detach(); m_menu.DestroyMenu(); } }
5.刪除數據
m_LogList.DeleteAllItems();或者
while(m_LogList.DeleteItem(0));
6. 得到點擊右鍵的listctrl的行列號,左鍵類似
步驟:右鍵點擊-》添加事件處理程序-》消息類型選擇NM_RCLICK,對應函數處理名稱為OnNMRClickList1
出現函數添加內容:
void CJGHQLOGTOOLDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // 方法一: /* DWORD dwPos = GetMessagePos(); CPoint point( LOWORD(dwPos), HIWORD(dwPos) ); m_list.ScreenToClient(&point); LVHITTESTINFO lvinfo; lvinfo.pt = point; lvinfo.flags = LVHT_ABOVE; int nItem = m_list.SubItemHitTest(&lvinfo); if(nItem != -1) { CString strtemp; strtemp.Format("單擊的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem); AfxMessageBox(strtemp); } */ // 方法二: /* NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if(pNMListView->iItem != -1) { CString strtemp; strtemp.Format("單擊的是第%d行第%d列", pNMListView->iItem, pNMListView->iSubItem); AfxMessageBox(strtemp); } */ *pResult = 0; }
7.在點擊子菜單插入對話框
步驟:1.點擊項目名字-》添加資源-》Dialog
2.MeNU菜單中點擊右鍵添加事件處理程序-》COMMAND-》添加編輯
添加如下內容: void CJGHQLOGTOOLDlg::On132778()
{ // TODO: 在此添加命令處理程序代碼
//int i,temp,k;
cDlgCheck dlg; dlg.DoModal(); TRACE(dlg.m_strValue); }
8.listcontrol列表數據實現分頁功能
思路:添加倆個按鈕上一頁和下一頁,把數據用結構體存起來,重復的刪除和插入,就ok了
遇到慢慢更新。。。。