“CListBox::InsertString”: 不能将参数 2 从“char [4096]”转换为“LPCTSTR” f:\csockclient\csockc
答案:1 悬赏:70 手机版
解决时间 2021-05-06 18:55
- 提问者网友:轮囘Li巡影
- 2021-05-06 09:45
mfc中如何将char[ ]数组转换为LPCTSTR,给个方法
最佳答案
- 五星知识达人网友:山君与见山
- 2021-05-06 11:21
为了使用列表框控件,首先需要向列表框控件中添加数据。在MFC类库中,列表框控件被封装为CListBox类。CListBox类提供了AddString方法向列表框中添加数据,该方法语法如下:
int AddString(LPCTSTR lpszItem);
参数说明如下。
lpszItem:表示向列表中添加的字符串数据。
返回值:表示新添加的数据在列表框中的索引位置。索引从零开始。
例如,下面的语句利用AddString方法向列表中添加数据。
m_DataList.AddString("历史");
m_DataList.AddString("地理");
m_DataList.AddString("政治");
m_DataList.AddString("生物");
m_DataList.AddString("体育");
此外,还可以使用InsertString方法向列表框中添加数据,该方法语法如下:
int InsertString(int nIndex, LPCTSTR lpszItem);
参数说明如下。
þ nIndex:表示列表中的一个索引位置,方法将在该位置处添加数据,如果该参数为-1,则在列表框中数据的末尾位置添加。
þ lpszItem:表示向列表中添加的字符串数据。
返回值:表示新添加的数据在列表框中的索引位置。索引从零开始。
例如,下面的语句应用InsertString方法向列表框中添加数据。
m_DataList.InsertString(0, "历史");
m_DataList.InsertString(1, "地理");
m_DataList.InsertString(2, "政治");
m_DataList.InsertString(3, "生物");
m_DataList.InsertString(4, "体育");
向列表框中添加数据
7.7.2 为列表框中的项目添加复选功能
在使用列表框控件时,有时需要利用列表框进行多项选择。这就需要列表框中的选项具有类似复选框的功能。那么如何让列表框中的数据以复选框的形式显示呢?可以按如下的方法实现。
例7.3 为列表框中的项目添加复选功能。
(1)创建一个基于对话框的工程,向对话框中添加列表框和按钮控件,如图7.49所示。
(2)利用类向导为列表框命名为m_DataList,类型为CListBox,如图7.50所示。
图7.49 对话框资源设计
图7.50 为列表框控件关联名称
(3)在对话框的头文件中将m_DataList的类型CListBox修改为CCheckListBox。
CCheckListBox m_DataList;
CCheckListBox派生于CListBox,它为数据项提供了复选功能。
(4)在列表框的属性窗口中设置Has strings属性,并设置Fixed自绘风格,如图7.51所示。
图7.51 设置列表框属性
(5)在对话框初始化时向列表框中添加数据。
m_DataList.InsertString(0, "历史");
m_DataList.InsertString(1, "地理");
m_DataList.InsertString(2, "政治");
m_DataList.InsertString(3, "生物");
m_DataList.InsertString(4, "体育");
(6)处理“确定”按钮的单击事件,统计用户选择的学科信息。
void CCheckListDlg::OnConfirm()
{
int nItemCount = m_DataList.GetCount(); //获取项目数量
CString szContent, szItemData;
int AddString(LPCTSTR lpszItem);
参数说明如下。
lpszItem:表示向列表中添加的字符串数据。
返回值:表示新添加的数据在列表框中的索引位置。索引从零开始。
例如,下面的语句利用AddString方法向列表中添加数据。
m_DataList.AddString("历史");
m_DataList.AddString("地理");
m_DataList.AddString("政治");
m_DataList.AddString("生物");
m_DataList.AddString("体育");
此外,还可以使用InsertString方法向列表框中添加数据,该方法语法如下:
int InsertString(int nIndex, LPCTSTR lpszItem);
参数说明如下。
þ nIndex:表示列表中的一个索引位置,方法将在该位置处添加数据,如果该参数为-1,则在列表框中数据的末尾位置添加。
þ lpszItem:表示向列表中添加的字符串数据。
返回值:表示新添加的数据在列表框中的索引位置。索引从零开始。
例如,下面的语句应用InsertString方法向列表框中添加数据。
m_DataList.InsertString(0, "历史");
m_DataList.InsertString(1, "地理");
m_DataList.InsertString(2, "政治");
m_DataList.InsertString(3, "生物");
m_DataList.InsertString(4, "体育");
向列表框中添加数据
7.7.2 为列表框中的项目添加复选功能
在使用列表框控件时,有时需要利用列表框进行多项选择。这就需要列表框中的选项具有类似复选框的功能。那么如何让列表框中的数据以复选框的形式显示呢?可以按如下的方法实现。
例7.3 为列表框中的项目添加复选功能。
(1)创建一个基于对话框的工程,向对话框中添加列表框和按钮控件,如图7.49所示。
(2)利用类向导为列表框命名为m_DataList,类型为CListBox,如图7.50所示。
图7.49 对话框资源设计
图7.50 为列表框控件关联名称
(3)在对话框的头文件中将m_DataList的类型CListBox修改为CCheckListBox。
CCheckListBox m_DataList;
CCheckListBox派生于CListBox,它为数据项提供了复选功能。
(4)在列表框的属性窗口中设置Has strings属性,并设置Fixed自绘风格,如图7.51所示。
图7.51 设置列表框属性
(5)在对话框初始化时向列表框中添加数据。
m_DataList.InsertString(0, "历史");
m_DataList.InsertString(1, "地理");
m_DataList.InsertString(2, "政治");
m_DataList.InsertString(3, "生物");
m_DataList.InsertString(4, "体育");
(6)处理“确定”按钮的单击事件,统计用户选择的学科信息。
void CCheckListDlg::OnConfirm()
{
int nItemCount = m_DataList.GetCount(); //获取项目数量
CString szContent, szItemData;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯