注册 登录
编程论坛 VC++/MFC

关于函数 InsertColumn第二个参数编译不通过的问题

panfeng415 发布于 2015-04-08 16:12, 1939 次点击
CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);
    pList-> InsertColumn(0,"工号",LVCFMT_LEFT,120);
    pList-> InsertColumn(1,"员工",LVCFMT_LEFT,160);
    pList-> InsertColumn(2,"工资",LVCFMT_LEFT,160);
产生编译错误error C2664: 'int CListCtrl::InsertColumn(int,LPCTSTR,int,int,int)' : cannot convert parameter 2 from 'const char [5]' to 'LPCTSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

函数原型:
int InsertColumn(int nCol, const LVCOLUMN* pColumn);
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);

nCol表示要插入列的列号。
pColumn 为新建列属性的LVCOLUMN结构的地址。

对于第二种函数重载,参数lpszcolumnHeading 为列标题的字符串的地址,所以可以使用一个字符串,比如 "姓名"。
nFormat 指定列对齐方式的整数,缺省值是左对齐。它可以为下列值之一:LVCFMT_LEFT,LVCFMT_RIGHT或LVCFMT_CENTER。
nWidth 以像素为单位的列宽。缺省值为-1,表示没有设置列宽。
nSubItem 与列相关联的子项的索引。缺省值为-1,表示没有子项与列相关。
什么原因呢?visual c++ 6.0 可以编译通过,有没有什么办法可以通过 visual studio 2010的编译?
2 回复
#2
天使梦魔2015-04-08 16:26
cannot convert parameter 2 from 'const char [5]' to 'LPCTSTR'
不能把标准字符转换成宽字符,在每个中文引号的前面加上大写的L
#3
panfeng4152015-04-08 19:17
回复 2楼 天使梦魔
编译是通过了可是我要的分组怎么不粗线
只有本站会员才能查看附件,请 登录
1