[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 887
  • Last Modified:

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
0
Anbuselvan
Asked:
Anbuselvan
  • 3
  • 2
2 Solutions
 
Roshan DavisCommented:
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
 
Roshan DavisCommented:
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
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
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

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

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