clistctrl控件添加列时,对于第一列,列对齐模式选择的是LVCFMT_RIGHT,可是其显示出来的效果并不是右对齐,而其他列却可以,请问这是怎么回事呀?如何使第一列右对齐?语句如下:
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.fmt = LVCFMT_RIGHT;
lvc.iSubItem = i;
lvc.pszText = szColumnLabel[i];
lvc.cx = ColumnWidth[i];
m_ListCtrl->InsertColumn(i,&lvc);
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.fmt = LVCFMT_RIGHT;
lvc.iSubItem = i;
lvc.pszText = szColumnLabel[i];
lvc.cx = ColumnWidth[i];
m_ListCtrl->InsertColumn(i,&lvc);
解决方案 »
- 高分求Tree control 选中指定结点方法
- 开机自运行疑惑?
- 求助高手,关于局域网中传输加密方案!
- 如何为传值啊?新手问题
- 学生成绩统计的SQL问题,急!!!!
- 如何创建一个启动界面?看过问题在回答!!不是简单的问题呀
- 高分求助:是否有C++源代码实现将完整的目录结构保存到单个数据文件中?
- 请教,关于GetKeyState()
- VC++使用ado过程中的效率和安全问题(来者有分啦!!!!)
- 关于CFormView类视图中插入CListCtrl初始化代码出错!
- 有关ctreectrl,如何使得鼠标右键点击空位置时,对应一行的节点文本不变为蓝色。
- 对于一个ctreectrl,当鼠标右键点击时如何区分点击的是节点的image,还是节点的文本,还是除节点image和文本的其他部分。
如果想左对其只有自己写!比如在你要插入的字符串左边插入一些空格符如" edrf";
但这样如果你的Item的宽度改变时,就又不会对其了!要想让其实时都能右对其的话那就要重载其
OnNotify()消息函数!
然后在OnNotify()消息函数里这样实现
BOOL CWZQListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
HD_NOTIFY *pHDN = (HD_NOTIFY*)lParam;
if(pHDN->iItem == 0)//iItem为你要使之不能改变的column!
{
*pResult = TRUE; // disable change
return TRUE; // Processed message
}
return CListCtrl::OnNotify(wParam, lParam, pResult);
这样可以使第0列固定不动,这样也可以达到以假乱真的效果啊!^_^