mfc list control控件问题

wuliangyue7 2011-08-11 03:46:56
新建了一个对话框程序 拖进去一个listcontrol控件并在OnInitDialog函数最后加入下面代码 为什么没有讲头添加进去?
// TODO: 在此添加额外的初始化代码

CListCtrl *list_ctrl = (CListCtrl *)GetDlgItem(IDC_LIST1);
list_ctrl->InsertColumn( 0, _T("stes"), LVCFMT_CENTER );
DWORD dw_style = ::GetWindowLong( list_ctrl->m_hWnd, GWL_STYLE );
dw_style &= ~( LVS_TYPEMASK );
dw_style &= ~( LVS_EDITLABELS );
//SetWindowLong( list_ctrl->m_hWnd, GWL_STYLE, LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS );

//设置扩展风格
DWORD styles = LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES;//|LVS_EX_CHECKBOXES;
ListView_SetExtendedListViewStyleEx( list_ctrl->m_hWnd, styles, styles );
//ListView_SetExtendedListViewStyleEX( list_ctrl->m_hWnd, styles, styles );

//add head row
TCHAR rgtsz[2][10] = { _T("col1"), _T("col2") };
LVCOLUMN lcol;
CRect rect;
char tmp[10];
memset( tmp, 0x00, sizeof(tmp) );
list_ctrl->GetWindowRect( &rect );
for( int i=0; i<2; i++ )
{
lcol.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH|LVCF_ORDER;
lcol.fmt = LVCFMT_LEFT;
lcol.pszText = rgtsz[i];
lcol.iSubItem = i;
lcol.iOrder = i;
if( i == 0 )
{
lcol.cx = rect.Width()*3/5;
}
else
{
lcol.cx = rect.Width()*2/5;
}
::MessageBox( NULL, _T(itoa(rect.Width(),tmp,10)),_T("rect.Width"),MB_OK );
list_ctrl->InsertColumn( i, &lcol );
}

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuliangyue7 2011-08-12
  • 打赏
  • 举报
回复
楼上正解 谢谢
snailfoot 2011-08-11
  • 打赏
  • 举报
回复
在该listcontrol控件的属性页面中把view改为report即可
ps:我知道你设置的style是report,但是view是视图,也就是你是以何种方式看到的,跟你设置的style无关
wuliangyue7 2011-08-11
  • 打赏
  • 举报
回复
别沉了 大神在哪里
wuliangyue7 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgl7903 的回复:]

CListCtrl 定义在 Afxcmn.h 中
默认的MFC程序的stdafx.h中包含了这个头文件
[/Quote]

我是想知道为什么上面的代码都木有效果 应该是加了一个头进去才对呀 为神马木有加进去
zgl7903 2011-08-11
  • 打赏
  • 举报
回复
CListCtrl 定义在 Afxcmn.h 中
默认的MFC程序的stdafx.h中包含了这个头文件

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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