Hi, I'm testing ListView Groups on my Windows 7 os.This code working perfect but text values displaying in Chinese charset. I writing value in latin char but this app displaying Unicode char.I not understand. Where is the wrong? Thank you. ( Perl v5.10 Win32::GUI v1.06 ).
Image : http://old.nabble.com/file/p31250335/2c7119b6.png Installed language packs;English, Turkish use strict; use warnings; use Win32::GUI qw( WS_VISIBLE WS_CHILD ); sub LVS_REPORT() {0x0001}; sub LVM_FIRST() {4096}; sub LVM_ENABLEGROUPVIEW() {LVM_FIRST + 157}; sub LVM_INSERTCOLUMN() {LVM_FIRST + 27}; sub LVM_INSERTITEM() {LVM_FIRST + 7}; sub LVM_INSERTGROUP() {LVM_FIRST + 145}; sub LVIF_GROUPID() { 256 }; sub LVM_SETITEM() {LVM_FIRST + 76 }; sub LVGF_HEADER() {1}; sub LVGF_FOOTER() {2}; sub LVGF_GROUPID() {16}; sub LVGF_ALIGN() {8}; sub LVGF_STATE() {4}; sub LVGA_FOOTER_LEFT() {8}; sub LVGS_COLLAPSIBLE() {0x00000008}; my $Win = new Win32::GUI::Window( -width => 330, -height => 269, -name => "Win", -text => "listview group test", -onResize => \&win_size, ); my $datalistview = $Win->AddListView( -text => "", -name => "ListView_1", -checkboxes => 1, -style => WS_VISIBLE | WS_CHILD | LVS_REPORT , # LVS_REPORT for the report style ); #-------------------------------------------------------------------------------------------------------------------# # MSDN create and inset column api # msdn url : http://msdn.microsoft.com/en-us/library/bb774743(v=VS.85).aspx # UINT mask; # int fmt; # int cx; # LPTSTR pszText; # int cchTextMax; # int iSubItem; # int iImage; # int iOrder; # int cxMin; # int cxDefault; # int cxIdeal; # Inserting Column1 my $paskl = pack('IIIPIIIIIII', 1|23|8|4|2, # LVCF_FMT | LVCF_ORDER | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH 0, # LVCFMT_LEFT 110, # Column Width "Column1", # Column Text 1024, # Column Text buffer 0, # SubItem 0, # Image 0, # Order 0, # avaible in vista; not used 0, # avaible in vista; not used 0 # avaible in vista; not used );# "Column1",0,-0- this is index my $returnvalue1 = $datalistview->SendMessage(LVM_INSERTCOLUMN,0,$paskl); print "Column1 index = $returnvalue1\n"; # Inserting Column2 my $pask2 = pack('IIIPIIIIIII', 1|23|8|4|2, # LVCF_FMT | LVCF_ORDER | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH 0, # LVCFMT_LEFT 110, # Column Width "Column2", # Column Text 1024, # Column Text buffer 1, # SubItem 0, # Image 0, # Order 0, # avaible in vista; not used 0, # avaible in vista; not used 0 # avaible in vista; not used );# "Column1",0,-0- this is index my $returnvalue2 = $datalistview->SendMessage(LVM_INSERTCOLUMN,1,$pask2); print "Column2 index = $returnvalue2\n"; #-------------------------------------------------------------------------------------------------------------------# # Inserting items to ListView # typedef struct { # UINT mask; # int iItem; # int iSubItem; # UINT state; # UINT stateMask; # LPTSTR pszText; # int cchTextMax; # int iImage; # LPARAM lParam; # if (_WIN32_IE >= 0x0300) # int iIndent; # endif # if (_WIN32_WINNT >= 0x0501) # int iGroupId; # UINT cColumns; # UINT puColumns; # endif # if (_WIN32_WINNT >= 0x0600) # int piColFmt; # int iGroup; # endif # } LVITEM, *LPLVITEM; my $paskl3 = pack('IIIIIPIIIIIIIII', 1|16|512, # LVIF_TEXT | LVIF_INDENT | LVIF_COLUMNS 0, # item index 0, # subitem index 0, # state index 0, # statemask index "Item1", # item text 5, # item text buffer 0, # image 0, # param 0, # indent 0, # group id is 0 0, # ccolumns 0, # pucolumns 0, # group id is 0 0 # igroup ); my $institem1 = $datalistview->SendMessage(LVM_INSERTITEM,0,$paskl3); print "Item1 index = $institem1\n"; my $paskl4 = pack('IIIIIPIIIIIIIII', 1|16|512, # LVIF_TEXT | LVIF_INDENT | LVIF_COLUMNS 1, # item index 0, # subitem index 0, # state index 0, # statemask index "Item2", # item text 5, # item text buffer 0, # image 0, # param 0, # indent 1, # group id is 0 0, # ccolumns 0, # pucolumns 0, # group id is 0 0 # igroup ); my $institem2 = $datalistview->SendMessage(LVM_INSERTITEM,1,$paskl4); print "Item2 index = $institem2\n"; #-------------------------------------------------------------------------------------------------------------------# # Sending message to listview and enabling group # msdn url : http://msdn.microsoft.com/en-us/library/aa931484.aspx # (HWND) hWndControl, # (UINT) LVM_ENABLEGROUPVIEW, # (WPARAM) wParam, // = (WPARAM) (BOOL) fEnable; # (LPARAM) lParam // = (LPARAM) (LPARAM) lParam; $datalistview->SendMessage(LVM_ENABLEGROUPVIEW,1,0); #-------------------------------------------------------------------------------------------------------------------# #-------------------------------------------------------------------------------------------------------------------# # msdn url : http://msdn.microsoft.com/en-us/library/aa453426.aspx # creating listview group # UINT cbSize; # UINT mask; # LPWSTR pszHeader; # int cchHeader; # LPWSTR pszFooter; # int cchFooter; # int iGroupId; # UINT stateMask; # UINT state; # UINT uAlign; # if _WIN32_WINNT >= 0x0600 # LPWSTR pszSubtitle; # UINT cchSubtitle; # LPWSTR pszTask; # UINT cchTask; # LPWSTR pszDescriptionTop; # UINT cchDescriptionTop; # LPWSTR pszDescriptionBottom; # UINT cchDescriptionBottom; # int iTitleImage; # int iExtendedImage; # int iFirstItem; # UINT cItems; # LPWSTR pszSubsetTitle; # UINT cchSubsetTitle; my $pasklaav = pack('IIPIIIIIIIIIIIIIIIIIIIII', 1024, # cbSize LVGF_HEADER|LVGF_GROUPID|LVGF_ALIGN|LVGF_STATE, "test1", # adding group text pszHeader 256, # char size of text 0, # pszFooter 0, # cchFooter 0, # GroupId 0, # statemask LVGS_COLLAPSIBLE, # state LVGA_FOOTER_LEFT, # Aling 0, # pszSubtitle 0, # cchSubtitle 0, # pszTask 0, # cchTask 0, # pszDescriptionTop 0, # cchDescriptionTop 0, # pszDescriptionBottom 0, # cchDescriptionBottom 0, # iTitleImage 0, # iExtendedImage 0, # iFirstItem 0, # cItems 0, # pszSubsetTitle 0 # cchSubsetTitle ); # inserting the group to listview my $insetgroupv = $datalistview->SendMessage(LVM_INSERTGROUP,-1,$pasklaav); print "insgroup1 - $insetgroupv\n"; my $pasklaavt = pack('IIPIIIIIIIIIIIIIIIIIIIII', 1024, # cbSize LVGF_HEADER|LVGF_GROUPID|LVGF_ALIGN|LVGF_STATE, "test1", # adding group text pszHeader 256, # char size of text 0, # pszFooter 0, # cchFooter 1, # GroupId 0, # statemask LVGS_COLLAPSIBLE, # state LVGA_FOOTER_LEFT, # Aling 0, # pszSubtitle 0, # cchSubtitle 0, # pszTask 0, # cchTask 0, # pszDescriptionTop 0, # cchDescriptionTop 0, # pszDescriptionBottom 0, # cchDescriptionBottom 0, # iTitleImage 0, # iExtendedImage 0, # iFirstItem 0, # cItems 0, # pszSubsetTitle 0 # cchSubsetTitle ); # inserting the group to listview my $insetgroupvt = $datalistview->SendMessage(LVM_INSERTGROUP,-1,$pasklaavt); print "insgroup2 - $insetgroupvt\n"; #-------------------------------------------------------------------------------------------------------------------# # http://msdn.microsoft.com/en-us/library/aa453430(MSDN.10).aspx # Seting item with listview group # typedef struct _LVITEM { # UINT mask; # int iItem; # int iSubItem; # UINT state; # UINT stateMask; # LPTSTR pszText; # int cchTextMax; # int iImage; # LPARAM lParam; # if (_WIN32_IE >= 0x0300) # int iIndent; # endif # int iGroupId; # } LVITEM; my $pasklaaas = pack('IIIIIIIIIII', LVIF_GROUPID, # mask 0, # item index 0, # subitem 0, # state 0, # statemask 0, # pszText 0, # Text buffer 0, # image index 0, # lParam 0, # iIndent 0, # groupid ); my $insetgroupas = $datalistview->SendMessage(LVM_SETITEM,0,$pasklaaas); print "setgroup1 - $insetgroupas\n"; my $pasklaaast = pack('IIIIIIIIIII', LVIF_GROUPID, # mask 1, # item index 0, # subitem 0, # state 0, # statemask 0, # pszText 0, # Text buffer 0, # image index 0, # lParam 0, # iIndent 1, # groupid ); my $insetgroupast = $datalistview->SendMessage(LVM_SETITEM,0,$pasklaaast); print "setgroup2 - $insetgroupast\n"; #-------------------------------------------------------------------------------------------------------------------# $Win->Center(); $Win->Show(); Win32::GUI::Dialog(); sub win_size { my ($self) = @_; my ($width, $height) = ($self->GetClientRect())[2..3]; $self->ListView_1->Resize($width+1, $height+1) if exists $self->{ListView_1}; } Regards... -- View this message in context: http://old.nabble.com/Win32%3A%3AGUI-ListBox-Group---Why-display-text-values-in-Chinese-charset--tp31250335p31250335.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Enable your software for Intel(R) Active Management Technology to meet the growing manageability and security demands of your customers. Businesses are taking advantage of Intel(R) vPro (TM) technology - will your software be a part of the solution? Download the Intel(R) Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar _______________________________________________ Perl-Win32-GUI-Users mailing list Perl-Win32-GUI-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/