可編輯的CListCtrl(最簡單的最基本的編輯)

來源:互聯網
上載者:User

參考:http://www.cnblogs.com/tianlangshu/archive/2011/03/20/1989421.html

該方法只是最簡單最基本的編輯,若想直接用於複雜編輯,可繼承CListCtrl,或者去下載別人已經封裝好類。。。

首先,添加一個editbox,和一個CListCtrl,聲明控制項變數,

CListCtrl m_ctrlListMapSheetIndex;
CEdit m_ctrlEdit;

初始化時:
m_ctrlEdit.ShowWindow(SW_HIDE);
m_ctrlEdit.SetParent(&m_ctrlListMapSheetIndex);

//關於CListCtrl的樣式,可根據需要設定
DWORD dwStyle = m_ctrlListMapSheetIndex.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//選中某行使整行高亮(只適用與report風格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//網格線(只適用與report風格的listctrl)
dwStyle |= LVS_EX_DOUBLEBUFFER;//內部雙緩衝,防止list閃爍
m_ctrlListMapSheetIndex.SetExtendedStyle(dwStyle); //設定擴充風格

void StartToEdit()
{// 其中 m_nRow,m_nColoum為第幾行,第幾列
    CRect rc;
    m_ctrlListMapSheetIndex.GetSubItemRect(m_nRow, m_nColoum, LVIR_LABEL,rc);//取得子項的矩形
    rc.left+=3;
    rc.top+=2;
    rc.right+=3;
    rc.bottom+=2;
   
    CString strText = m_ctrlListMapSheetIndex.GetItemText(m_nRow,m_nColoum);//取得子項的內容
    m_ctrlEdit.SetWindowText(strText);//將子項的內容顯示到編輯框中
    m_ctrlEdit.ShowWindow(SW_SHOW);//顯示編輯框
    m_ctrlEdit.MoveWindow(&rc);//將編輯框移動到子項上面,覆蓋在子項上
    m_ctrlEdit.SetFocus();//使編輯框取得焦點
    m_ctrlEdit.CreateSolidCaret(1,rc.Height() - 5);//建立一個游標
    m_ctrlEdit.ShowCaret();//顯示光線標
    m_ctrlEdit.SetSel(-1);//使游標移到最後面
}

然後,添加CEdit失去焦點時的訊息EN_KILLFOCUS。在該訊息中添加代碼使編輯框中的內容更新到CListCtrl中。
///
CString strText;
m_ctrlEdit.GetWindowText(strText);//取得編輯框的內容
strText.Trim();
m_ctrlListMapSheetIndex.SetItemText(m_nRow,m_nColoum,strText);//將該內容更新到CListCtrl中
m_ctrlEdit.ShowWindow(SW_HIDE);//隱藏編輯框
/////////////////////////////////////////////////////////////////

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.