//更改列头CHeaderCtrl文字
STDMETHODIMP CAxTreeView::SetHeaderItem(int nCol, BSTR sText)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here HDITEM hdi = {0};
hdi.mask = HDI_TEXT;
hdi.cchTextMax = 255;
hdi.pszText = LPSTR(sText); //有问题的地方。可以编译执行,但是设置不了列头
m_TreeView.m_Header.SetItem(nCol, &hdi);
return S_OK;
}c++中字符串这么多,转换的时候也有很多问题。上面的代码,我该怎么把BSTR的sText赋值给LPSTR的pszText?
STDMETHODIMP CAxTreeView::SetHeaderItem(int nCol, BSTR sText)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here HDITEM hdi = {0};
hdi.mask = HDI_TEXT;
hdi.cchTextMax = 255;
hdi.pszText = LPSTR(sText); //有问题的地方。可以编译执行,但是设置不了列头
m_TreeView.m_Header.SetItem(nCol, &hdi);
return S_OK;
}c++中字符串这么多,转换的时候也有很多问题。上面的代码,我该怎么把BSTR的sText赋值给LPSTR的pszText?
解决方案 »
- 游戏编程中如何实现由一个场景进入另一个场景
- 想要在属性表单的某一个属性页活动的时候处理 怎么写
- uxtheme.dll异常死
- 为什么用“::”和“this->”只能显示一部分函数,却不能显示基类的成员函数
- 简单问题:VC里怎么使用ActiveX控件
- 为什么我的向导对话框没有确定按钮?
- 谁能比较清楚地阐述一下Doc/View的用法?
- 急 BSTR
- 如何用MFC自定义消息接受USB口来的数据?
- 我的VC程序完成了,也已经编译成了EXE程序,可怎么做安装盘?大家一般都用什么工具?
- 按ctrl+alt+del,在任务管理器里面,应用程序都可以结束,怎么让我的窗口不出现在应用程序里面,不能结束?
- 棋牌游戏新开张,欢迎大家来测试!
// Description: Function takes a BSTR argument and returns
// the char* representation of it
char *bstr2a(const BSTR cmd)
{
int n, i;
char *buf;
n = SysStringLen(cmd); // length of input
buf = (char *) malloc(n+3);
for (i = 0; i < n; i++) // wide to narrow
{ buf[i] = (char) cmd[i];}
buf[i] = 0;
return buf;
}。
hdi.pszText = bstr2a(sText);
_bstr_t 可以很好的自动实现ANSI和UNICODE之间的转换