使用listcontrol控件遇到的問題,在程序初始化以後沒有出現表頭,還有其他現象,請看帖子内容!!!

DataSpatial 2005-08-22 09:43:41
本程序是一個機遇對話框的工程,在OnInitDialog()使用了初始化,包括表頭的一些安排和style的設置
使用listcontrol控件遇到的問題:
1、程序運行以後,沒有出現表頭;
2、在對話框初始化結束以後,如果向控件中添加數據,就會出現表頭;
3、如果手工調節表頭裏的分隔綫,下面的數據欄分隔綫不會自動更新;

如果把這些功能抽出來單獨在一個工程中使用,就不會有任何問題,但是我實在不知道listcontrol控件和那些東西有了衝突啊!

謝謝前輩耐心分析一下!
...全文
75 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DataSpatial 2005-08-23
問題已經解決!謝謝各位!
回复
DataSpatial 2005-08-22
Icon風格!
回复
DataSpatial 2005-08-22
BOOL CListCtrlDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//建立图像列表
LargeImage.Create(32,32, ILC_COLOR8 |ILC_MASK , 8, 1);
SmallImage.Create(16, 16, ILC_COLOR8 | ILC_MASK, 8, 1);
//为图像列表装入位图
CBitmap cBmp;
cBmp.LoadBitmap(IDB_IMAGES_NORMAL);

LargeImage.Add(&cBmp, RGB(255,0, 255));
cBmp.DeleteObject();

cBmp.LoadBitmap(IDB_IMAGES_SMALL);
SmallImage.Add(&cBmp, RGB(255,0, 255));
cBmp.DeleteObject();
//为列表控件关联图像列表
m_list.SetImageList(&LargeImage, LVSIL_NORMAL);
m_list.SetImageList(&SmallImage, LVSIL_SMALL);
//添加三个列
LVCOLUMN lvcol;
lvcol.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;

lvcol.fmt=LVCFMT_CENTER;//居中
lvcol.pszText="第一列";
lvcol.iSubItem=1;
lvcol.cx=70;

m_list.InsertColumn(0,&lvcol);
lvcol.pszText="第二列";
m_list.InsertColumn(1,&lvcol);
lvcol.pszText="第三列";
m_list.InsertColumn(2,&lvcol);

LVITEM lvi;
CString strItem;
for (int i = 0; i < 8; i++)
{
//设置第一列
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
strItem.Format(_T("图标%i"), i);
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
lvi.iImage = i;
m_list.InsertItem(&lvi);

//设置第二列(子列):
strItem.Format(_T("第%d行"), i);
lvi.iSubItem =1;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
m_list.SetItem(&lvi);

//设置第三列(子列)
strItem.Format(_T("第%d行"), i);
lvi.iSubItem =2;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
m_list.SetItem(&lvi);

}
return TRUE;
}

沒有選擇report风格
我覺得代碼應該沒有任何問題,我把上面的代碼完全不變的copy到我的程序中的!
回复
lixiaosan 2005-08-22
是否选择了report风格

你不贴代码我等怎么知道什么地方有问题
回复
ooy777 2005-08-22
不选Report风格能出现表头吗,疑惑?
回复
DataSpatial 2005-08-22
自己頂!!!
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-22 09:43
社区公告
暂无公告