救救我,关于listbox 如何设置添加列?

wjy88 2001-12-07 08:51:53
listbox的设置如下:
CONTROL "List1",IDC_LIST1,"SysListView32",LVS_REPORT |
LVS_SORTASCENDING | LVS_NOSORTHEADER | WS_BORDER |
WS_TABSTOP,8,144,235,56,WS_EX_CLIENTEDGE
程序如下:
int tabs[] = {30, 120, 210 };
BOOL lret;
lret=SendDlgItemMessage(hwnd,IDC_LIST1,LB_SETTABSTOPS,(WPARAM)3,(LPARAM)tabs);
if(lret==TRUE){
MessageBox(NULL,"ok","ok",MB_OK);
}
else
{
MessageBox(NULL,"ERR","ERR",MB_OK);
}
为什么加不进去?
最好给出完整的添加列,及内容的SDK,源码!!
...全文
446 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjy88 2001-12-07
  • 打赏
  • 举报
回复
谢谢各位
karma 2001-12-07
  • 打赏
  • 举报
回复
try

CONTROL "List1",IDC_LIST1,"listbox", WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | WS_BORDER | LBS_NOTIFY | LBS_USETABSTOPS, 8,144,235,56,WS_EX_CLIENTEDGE
masterz 2001-12-07
  • 打赏
  • 举报
回复
//ListView control
CONTROL "List1",IDC_LIST1,"SysListView32",LVS_REPORT | WS_BORDER |
WS_TABSTOP,7,44,192,155
//ListBox control
LISTBOX IDC_LIST2,272,93,152,149,LBS_SORT | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
你上面应该是listview
masterz 2001-12-07
  • 打赏
  • 举报
回复
HWND hwndlistview=GetDlgItem(IDC_LIST1)->m_hWnd;
int tabs[] = {30, 120, 210 };
TCHAR txtbuf[64];
LVCOLUMN col;
int nret=0;
int colnum=0;
for(int i=0;i<sizeof(tabs)/sizeof(int);i++)
{
wsprintf(txtbuf,"Column %d",i);
col.mask=LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
col.fmt=LVCFMT_CENTER;
col.cx=tabs[i];
col.pszText = txtbuf;
col.cchTextMax=sizeof(txtbuf);
col.iSubItem = i;
nret=ListView_InsertColumn(hwndlistview,i,&col);
if(nret==-1)
break;
else
colnum++;
}
if(colnum>0)
ListView_SetItemCount (hwndlistview, colnum);
if(nret!=-1){
::MessageBox(NULL,"ok","ok",MB_OK);
}
else
{
::MessageBox(NULL,"ERR","ERR",MB_OK);
return;
}
LVITEM lvItem;
ZeroMemory(&lvItem,sizeof(LVITEM));
int dIndex;
for(int x=3;x>=0;x--)
{
lvItem.mask = LVIF_TEXT;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
wsprintf(txtbuf,"Row %d",i);
lvItem.pszText = txtbuf;
dIndex = ListView_InsertItem(hwndlistview,&lvItem);
// Add subitems
for(int y=1;y<3;y++)
{
lvItem.mask = TVIF_TEXT;
lvItem.iItem = dIndex;
lvItem.iSubItem = y;
lvItem.pszText = txtbuf;
wsprintf(txtbuf,"Sub Item %d,%d",x,y-1);
ListView_SetItem(hwndlistview,&lvItem);
}
}
wjy88 2001-12-07
  • 打赏
  • 举报
回复
可是我是加的listbox控件啊,只是设置了一下属性而已啊
karma 2001-12-07
  • 打赏
  • 举报
回复
here is an example in SDK style:

http://msdn.microsoft.com/library/en-us/shellcc/platform/CommCtls/Samples/listview/ListView1/ListView1.asp?frame=true
karma 2001-12-07
  • 打赏
  • 举报
回复
SysListView32 is a listview control, not listbox, you should not use LB_SETTABSTOPS, you should use the set of macros which starts with
"ListView_" in COMMCTRL.H to add columns/insert items

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧