• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 487
  • Last Modified:

Listview Refresh?

Hi,

After inserting column into the lsitview, I want to know how can I delete this and then inserting another column...

I insert column like this:
----------------------------------------
LV_COLUMN col;

col.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
col.fmt=LVCFMT_LEFT;

for (int yk=0;yk5;yk++)
{
       col.iSubItem=yk;
       col.pszText="Testing";
       col.cx=120;
       wndList.InsertColumn(yk,&col);
}

CHeaderCtrl* pHeader1 = (CHeaderCtrl*)wndList.GetDlgItem(0);

for (int kk=0;kk<5;kk++)
{
      pHeader1->DeleteItem(0);
}

for (yk=0;yk<NumField;yk++)
{
     col.iSubItem=yk1;
     col.pszText="Second";
     col.cx=120;
    wndList.InsertColumn(yk,&col);
}

----------------------------------------

After doing this, I found even the width of my listview is enough to display the five column, the horizontal scroll bar is still appeared.

I think I cannot remove the five  columns added at the first time.
Thus, I want to know how can I remove the column added and insert another new columns in my listview.

I hope the horizontal scroll bar will only be appeared if the width of the listview is not enoguh to display the five columns I added each time.

What mistake had I made?
Thanks!!!



0
ee_lcpaa
Asked:
ee_lcpaa
  • 2
1 Solution
 
Vinayak KumbarSr Program ManagerCommented:
Hi,

What I got from that is U want to change the header's text. right?. If that is the case then do

1. Insert the columns as u R doing already.
2. Whenever U want to change the column header text do

CListCtrl *list = (CListCtrl *)GetDlgItem(IDC_LIST1);
CHeaderCtrl* pHeader = (CHeaderCtrl*)list->GetDlgItem(0);
      
HDITEM hi;
hi.pszText = "Hello";
hi.cchTextMax = 5;
hi.mask = HDI_TEXT;
pHeader->SetItem(0, &hi);
pHeader->SetItem(1, &hi);

Thats it, U need not delete all the rows and insert the fresh ones.
Try it out.

VinExpert
0
 
SamHobbsCommented:
Use DeleteColumn to Delete a Column.
0
 
SamHobbsCommented:
Instead of:

CHeaderCtrl* pHeader1 = (CHeaderCtrl*)wndList.GetDlgItem(0);

for (int kk=0;kk<5;kk++)
{
      pHeader1->DeleteItem(0);
}


Use:

for (int kk=0;kk<5;kk++)
{
      wndList.DeleteColumn(0);
}

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now