1.如何像windows我的电脑中的那个list一样,单击选中(选中的项变色),双击相应另一个事件(AfxMessageBox("double")).想了好久,不明。2.SetIconSpacing(int cx, int cy)只对icon有用,如果想在small icon下增大两项的间距,该怎样?谢谢

解决方案 »

  1.   

    1   click use system and use ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk) 
      

  2.   

    TO DoubleJiang(Double) 能说得再明白一点吗?我还不是很懂
      

  3.   

    CView or CDialog ?
      

  4.   

    listctrl直接就支持这两个消息的(发给父窗口的), NM_CLICK, NM_DBLCLK, 单击缺省就是select,你只需要处理双击的消息就可以了
      

  5.   

    2我也不清楚了,MSDN里写着也只是对LVS_ICON起作用的。如果硬要改,那就用CustomDraw自己画吧,也不是很复杂
      

  6.   

    加入函数OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {//*******************  得到当前的行(  No  全局  )******************//
    CString No=m_list.GetItemText(m_list.GetSelectionMark(),0); CDiadlg dlg;                         // 对单击时 弹出“具体操作” 对话框
    dlg.DoModal();
              m_list.DeleteAllItems(); //  ***********刷新内容
    Getlist();                          //  ******************//
             No="";                              //  当鼠标点击空白处//
    在对应的对话框的类中函数进行No的if判断。
    不知能否帮你。
      

  7.   

    忘了一句,Getlist()是对list控件的赋值,配合DeletAllItem()可以做到刷新List控件的效果
      

  8.   

    我是这样写的,但点上去就弹出来,我的意思是单击选中,双击弹出MessageBox,大家帮帮忙
    void CListCtrlDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
        NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
        CString sTemp;
        if((pNMListView->uOldState & LVIS_SELECTED) == 0 &&
    (pNMListView->uNewState & LVIS_SELECTED) == LVIS_SELECTED)
    {
         sTemp.Format("%d got selected",pNMListView->iItem);
                  AfxMessageBox(sTemp); }
    *pResult = 0;
    }
      

  9.   

    To  DoubleJiang(Double)
    是Dialog
      

  10.   

    在 .h文件中
    afx_msg void OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnClickList(NMHDR* pNMHDR, LRESULT* pResult);
    在 .cpp文件中
    BEGIN_MESSAGE_MAP(CTest2Dlg, CDialog)
    //{{AFX_MSG_MAP(CTest2Dlg)
    ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
    ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()void CListCtrlDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    int nItem= pNMLV->iItem;
            if (nItem >= 0 )
            {
                CString sTemp;
                 sTemp.Format("%d got selected",nItem);
                AfxMessageBox(sTemp);
             }
              *pResult = 0;
    }void CListCtrlDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    int nItem= pNMLV->iItem;
     *pResult = 0;
    }
    你试试行不。
      

  11.   

    To coolover(我很懒惰)  行了  50分晚上结贴
      

  12.   

    如果在small icon下增大两项的间距,最好不通过调整icon的大小,否则选中的时候很难看的
    大家帮帮忙
      

  13.   

    看这个例子:http://www.codeguru.com/listview/change_row_height.shtml