Windows Phone @ MoDaCo: listView messages – how to set listviewItem position - LVM_SETITEMPOSITION?? - Windows Phone @ MoDaCo

Jump to content

Galaxy Nexus Review
We put the Galaxy Nexus and Ice Cream Sandwich through their paces.

Google Music Launch
Google bring Music out of beta and launch their music store.

MoDaCo Plus / Ad Free
Hate ads? Want cool stuff? Sign up for a MoDaCo Plus / MoDaCo Ad Free account with Online Kitchen access!

Close
Open
Close
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

listView messages – how to set listviewItem position - LVM_SETITEMPOSITION??
-----


#1 User is offline   witpo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 1
  • Joined: 03-April 09
  • Devices:omnia

Posted 03 April 2009 - 10:13 PM

Hi,

I would like to display all listview items in one row with scroll bar below it – instead of multiple rows and scroll bar on the right. Someone told me that I can achieve it using LVM_SETITEMPOSITION message.

According to my knowledge code below should set position for each item added to listView control. There are two ways of doing it - we can use MessageWindow.SendMessage from Microsoft.WindowsCE.Forms or use DllImport and SendMessage. For some unknown reason code is not working as expected and control displays items in multiple rows.

Could someone please help me ?



public static IntPtr MakeLParam(int wLow, int wHigh)

{

return (IntPtr)(((short)wHigh << 16) | (wLow & 0xffff));

}





[DllImport("coredll.dll", SetLastError = true)]

public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);



const uint LVM_SETITEMPOSITION = 0x1000 + 15;



private void function()

{



ImageList imageList = new ImageList();

listView.View = System.Windows.Forms.View.LargeIcon;







try

{



int x = 0;

foreach ()

{



ListViewItem item = new ListViewItem(desc);





//magic

int index = listView.Items.Count;







IntPtr wparam = (IntPtr)index;

IntPtr lparam = MakeLParam(x, 0);



Message mes = Message.Create(listView.Handle, 0x1000 + 15, wparam, lparam);

MessageWindow.SendMessage(ref mes);















//old

//IntPtr listH = listView.Handle;

//int index = listView.Items.Count;





//int y = 0;



//int t = SendMessage(listH, LVM_SETITEMPOSITION, index, m);

//IntPtr t = SendMessage(listView.Handle, LVM_SETITEMPOSITION, (IntPtr)index, MakeLParam(x, y));



x += 20;



listView.Items.Add(item);



}



listView.LargeImageList = imageList;



}

catch (Exception ex)

{



}

}

0

Sponsored Links

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2012. MoDaCo uses IntelliTxt technology. Privacy Policy / Contact Details.

Skin and Language

Sign in here


Sign in options
Log in with Facebook Log in with Twitter   Go to advanced login Register Now!