2012-03-27 4 views
0

런타임에 CListCtrl에 텍스트를 입력하는 방법을 잘 모르시겠습니까? 내 CListCtrl의 창조를위한 (모든 데이터는 나중에 다른 방법에서 추가) :GUI에서 사용자가 Visual Studio CListCtrl을 CEdit처럼 수정할 수 있도록하려면 어떻게해야합니까?

pList = new CListCtrl; 
pList->Create(LVS_REPORT | WS_CHILD | WS_VISIBLE, CRect(480, 10, 480+140, 370), this, 1000); 
pList->SetExtendedStyle(LVS_EX_GRIDLINES); 

LVCOLUMN lvColumn; 

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; 
lvColumn.fmt = LVCFMT_LEFT; 
lvColumn.cx = 60; 
lvColumn.pszText = "Iteration"; 
pList->InsertColumn(0, &lvColumn); 

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; 
lvColumn.fmt = LVCFMT_LEFT; 
lvColumn.cx = 80; 
lvColumn.pszText = "Value"; 
pList->InsertColumn(1, &lvColumn); 

답변

1

LVS_EDITLABELS을 사용하면 하나의 열만 편집 할 수 있습니다.

1

만 CListCtrl에서 서브 클래스 자신의 컨트롤을 작성하여 그것을 할 수 있습니다.

다른 제안은 CListCtrl의 열을 반영하는 입력란이있는 대화 상자를 만드는 것입니다. 예 : 이름과 나이가 2 열인 경우 각각 이름과 나이의 두 편집 상자가있는 대화 상자를 만듭니다. 사용자가 값을 입력하는 대화 상자를 표시하고 사용자가 대화 상자를 닫으면 값을 가져 와서 행으로 삽입합니다. 사용자가 목록 컨트롤을 두 번 클릭하거나 별도의 추가 단추가있을 때 대화 상자를 표시 할 수 있습니다.

같은 방식으로 listcontrol 행의 값을 편집 할 때 동일한 대화 상자를 사용할 수 있습니다.

관련 문제