[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

Listview control in ATL

Posted on 2002-05-20
6
Medium Priority
?
1,280 Views
Last Modified: 2013-11-20
hi to all,
I have to display values in Listview control using ALT. I tried with ListView_InsertColumn to add column header. It got displayed in listview. Where as when i tried to display a corresponding item using ListView_InsertItem to the list view control, I could't able to display it. Can any one suggest me how to display listview control in ATL if there is other way of doing so. The following is the code i have used.

HWND lvwhwnd;
lvwhwnd = m_ctlSysListView32.Create(m_hWnd, rc,_T("hello List View Control"), WS_TABSTOP | WS_CHILD | WS_BORDER | WS_VISIBLE | LVS_AUTOARRANGE |LVS_REPORT | LVS_OWNERDATA,WS_EX_CLIENTEDGE, IDR_LISTVIEW);

LV_COLUMN   lvColumn;
char*     szString;
szString="PAGE URL";
lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 200;

lvColumn.pszText = szString;
int val = ListView_InsertColumn(lvwhwnd, 0, &lvColumn);
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT;
//lvitem.iItem     = 0;
//lvitem.iSubItem=0;
lvitem.pszText="My";
int han=ListView_InsertItem(lvwhwnd,&lvitem);
eagerly waiting for advise,
Thanks in advance,
ravi.
0
Comment
Question by:ravikirang
  • 3
  • 3
6 Comments
 
LVL 12

Expert Comment

by:migel
ID: 7023330
Hi!
what for you comment these lines?
//lvitem.iItem     = 0;
//lvitem.iSubItem=0;
         
uncomment it and try.
0
 

Author Comment

by:ravikirang
ID: 7023349
Hi miqel Thanks for earliest reply,
But i tried even by removing coments but i could't able to see values of listview on control.
Please suggest me
ravi
0
 
LVL 12

Expert Comment

by:migel
ID: 7023371
Hi!
here is working example (in the DIALOG)

     RECT          rc;
     LV_COLUMN     lvc;
     char          szCaption[48];
     ::GetClientRect(m_hwndList, &rc);
     LoadString(_Module.GetModuleInstance(), IDS_TEMPLATE, szCaption, sizeof(szCaption));

     lvc.mask = LVCF_TEXT | LVCF_WIDTH |LVCF_SUBITEM |LVCF_FMT;
     lvc.cx = 2*rc.right/5-2;
     lvc.pszText = szCaption;
     lvc.fmt = LVCFMT_LEFT | LVCFMT_IMAGE;
     lvc.iSubItem = 0;
     ListView_InsertColumn(m_hwndList, 0, &lvc);

     LoadString(_Module.GetModuleInstance(), IDS_CREATE_DATE, szCaption, sizeof(szCaption));
     lvc.cx = rc.right/5;
     lvc.fmt = LVCFMT_CENTER;
     lvc.iSubItem = 1;
     ListView_InsertColumn(m_hwndList, 1, &lvc);

     LoadString(_Module.GetModuleInstance(), IDS_CHECK_CAPTION, szCaption, sizeof(szCaption));
     lvc.iSubItem = 2;
     ListView_InsertColumn(m_hwndList, 2, &lvc);

     LoadString(_Module.GetModuleInstance(), IDS_SEND_CAPTION, szCaption, sizeof(szCaption));
     lvc.iSubItem = 3;
     ListView_InsertColumn(m_hwndList, 3, &lvc);

// insert items
          LV_ITEM lvi;
          lvi.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM|LVIF_STATE;
          lvi.iItem = 0;
          lvi.iSubItem = 0;
          lvi.pszText = "code";
          lvi.state = nCount == 1 ? LVIS_SELECTED : 0;
          lvi.stateMask =     LVIS_SELECTED;
          lvi.iImage = 1;
          lvi.lParam = 0;
          ListView_InsertItem(hList, &lvi);
         
          lvi.mask = LVIF_TEXT;
          lvi.iSubItem = 1;
          lvi.pszText = "subitem 1";
          ListView_SetItem(hList, &lvi);
         
          lvi.iSubItem = 2;
          lvi.pszText = "subitem 2";
          ListView_SetItem(hList, &lvi);
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 

Author Comment

by:ravikirang
ID: 7023558
Hi,
even i tried with this code, I could able to display the columm headings but the values are not getting displayed.
when i tried
int nval = ListView_InsertItem(hList, &lvi);
A value 0 is getting stored in nval. In documentaion it was
given that it returns a value if inserted else -1 will be returned. Please correct me if i'm wrong. Help me with alternative.
ravi
0
 
LVL 12

Accepted Solution

by:
migel earned 400 total points
ID: 7023668
Hi!
remove LVS_OWNERDATA style in hte Create method and all will be ok.
0
 

Author Comment

by:ravikirang
ID: 7023685
Thankyou miqel it is working after i removed LVS_OWNERDATA.
Thanks a lot once again,
ravi
0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Finishing the grid – keyboard support for arrow keys to manoeuvre, entering the numbers.  The PreTranslateMessage function is to be used to intercept and respond to keyboard events. Continuing from the fourth article about sudoku. …
Ready to get certified? Check out some courses that help you prepare for third-party exams.
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.
There may be issues when you are trying to access Outlook or send & receive emails or due to Outlook crash which leads to corrupt or damaged PST file. To eliminate the corruption from your PST file, you need to repair the corrupt Outlook PST file. U…
Suggested Courses
Course of the Month11 days, 7 hours left to enroll

640 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