combo box中如何动态设置列头的宽度(要能保持内容)及检测宽度被手工改变?

headegg 2011-07-31 08:01:43
实际上是两个问题,combo box中:

1)如何在运行时动态设置列的宽度(表中的内容要能保持),我想在改变对话框大小时,改变表中某一两列的宽度,最大限度地利用空间,如何实现?
2)手工拉动列头改改变某一列宽度的动作如何截获?

非常感谢!
...全文
55 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
headegg 2011-08-01
  • 打赏
  • 举报
回复
多谢各位,在另一贴中已经解决。
Eleven 2011-07-31
  • 打赏
  • 举报
回复
1. CListCtrl::SetColumnWidth();
2. 父窗口类中添加虚函数OnNotify,过滤HDN_ITEMCHANGING通知

BOOL CDDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
// TODO: Add your specialized code here and/or call the base class

LPNMHEADER phdn = (LPNMHEADER)lParam;
if(HDN_ITEMCHANGINGA == phdn->hdr.code || HDN_ITEMCHANGINGW == phdn->hdr.code)
{
CString str;
str.Format(_T("%d"), phdn->iItem);
AfxMessageBox(str);
}

return CDialog::OnNotify(wParam, lParam, pResult);;
}
headegg 2011-07-31
  • 打赏
  • 举报
回复
更正一下,List Control,不是List Box。
Eleven 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 headegg 的回复:]

不好意思,应该是List Box,请转到新贴:

http://topic.csdn.net/u/20110731/22/96b82ca5-b683-4300-ba5a-05321e7b9edc.html
[/Quote]
CListBox or CListCtrl ??
headegg 2011-07-31
  • 打赏
  • 举报
回复
不好意思,应该是List Box,请转到新贴:

http://topic.csdn.net/u/20110731/22/96b82ca5-b683-4300-ba5a-05321e7b9edc.html
oyljerry 2011-07-31
  • 打赏
  • 举报
回复
ListCtrl可以设置Header来控制列的宽度.
Eleven 2011-07-31
  • 打赏
  • 举报
回复
CComboBox or CListCtrl(report style) ?
healer_kx 2011-07-31
  • 打赏
  • 举报
回复
那个是CListCtrl吧?

15,979

社区成员

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

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