ListView_InsertItem - Failed

Dear Experts,

I am trying to insert a new item into a ListView control.

The following code failes...

LVITEM stLVI;
char   szBuf[6];
memset(szBuf, '\0', sizeof(szBuf));
strcpy(szBuf,"Hello");
stLVI.pszText = szBuf;
stLVI.cchTextMax = sizeof(szBuf);
stLVI.iItem = 0;
stLVI.iSubItem = 0;
stLVI.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
stLVI.iImage = 2;
stLVI.lParam = 0;
ListView_InsertItem(listViewWindow,&stLVI);

Any suggestion?

Thanks in advance.

Regards
Anbuselvan
AnbuselvanAsked:
Who is Participating?
 
Roshan DavisConnect With a Mentor Commented:
Then you have to subclass that listcontrol and add strings

These links might help you

http://www.codeproject.com/dll/subhook.asp - Cross Process Subclassing
http://www.codeproject.com/threads/winspy.asp - Three Ways to Inject Your Code into Another Process

Good luck
0
 
Roshan DavisConnect With a Mentor Commented:
Which style of list you are using ... "Report Style", if yes, before adding the Item you have to add the Column first... like this

      HWND listViewWindow = GetDlgItem(IDC_LIST1)->m_hWnd;

      // Add columns
      LVCOLUMN lvColumn;
      char szLabel[50];
    lvColumn.mask = LVCF_TEXT|LVCF_WIDTH;
    lvColumn.cx = 125;
    lvColumn.pszText = szLabel;

    // Column 0
    strcpy(szLabel,"Column 1");
    ListView_InsertColumn(listViewWindow,0,&lvColumn);


      LVITEM stLVI;
      char   szBuf[6];
      memset(szBuf, '\0', sizeof(szBuf));
      strcpy(szBuf,"Hello");
      stLVI.pszText = szBuf;
      stLVI.cchTextMax = sizeof(szBuf);
      stLVI.iItem = 0;
      stLVI.iSubItem = 0;
      stLVI.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
      stLVI.iImage = 2;
      stLVI.lParam = 0;
      ListView_InsertItem(listViewWindow,&stLVI);

Good Luck
0
 
AnbuselvanAuthor Commented:
Hi roshmon,

  Thanks for your immediate suggestion.

  But, I have already three columns in my report style listview.

  The given is working fine in my dialog based application with listview control.

  But, I am doing one hook application. I need to hook one theird party application and
  clear the list items and add a new item into that.

  Here, I am facing the problem that I have mentioned.

  Any suggestion?

Thanks in advance.

Regards,
Anbuselvan
0
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

 
AnbuselvanAuthor Commented:
Hi roshmon,

The given links are very useful. Thanks.

Actually my code is working fine.

But, what I notised is wrong.

The given value is inserted successfully in the list control. But, it is not visibled. So, that I couldn't realised.

I can get the list count = 1.

But, I couldn't see the values in the list control.

Any possible reason?

Thanks.

Regards,
Anbu
0
 
Roshan DavisCommented:
Probably string that you are giving becoming out of scope.
I'm checking on that....
Rosh :)
0
 
ArchMDCommented:
Hi,

Have you  created the resource using the resource editor?
If so in the general page of the properties of the control there is an checkbox called visible.
Make sure that is ticked.
Even if you are creating the control dynamically then also during create you have to specify the VISIBLE style.

Regards,
ArchMD
0
All Courses

From novice to tech pro — start learning today.