?
Solved

Listview Refresh?

Posted on 2000-02-25
3
Medium Priority
?
493 Views
Last Modified: 2013-11-20
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
Comment
Question by:ee_lcpaa
  • 2
3 Comments
 
LVL 8

Expert Comment

by:Vinayak Kumbar
ID: 2560577
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
 
LVL 3

Expert Comment

by:SamHobbs
ID: 2561060
Use DeleteColumn to Delete a Column.
0
 
LVL 3

Accepted Solution

by:
SamHobbs earned 240 total points
ID: 2561061
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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Introduction: Dialogs (2) modeless dialog and a worker thread.  Handling data shared between threads.  Recursive functions. Continuing from the tenth article about sudoku.   Last article we worked with a modal dialog to help maintain informat…
If you use Adobe Reader X it is possible you can't open OLE PDF documents in the standard. The reason is the 'save box mode' in adobe reader X. Many people think the protected Mode of adobe reader x is only to stop the write access. But this fe…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
If you are looking for an automated tool which can generate reports for Outlook emails and other items from PST file, then you can go for Kernel PST Reporter tool. The reports which are created by this tool are helpful to analyze and understand PST …

585 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question