社区
界面
帖子详情
ListCtrl能否显示UNICODE
huaboy408
2004-03-29 02:45:33
我的程序改为UNICODE版本后,ListCtrl中的汉字显示为乱码,程序应该没有什么问题,现在我考虑是不是ListCtrl不支持UNICODE,需要做什么设置或用代码控制,希望大家鼎力帮助
...全文
168
12
打赏
收藏
ListCtrl能否显示UNICODE
我的程序改为UNICODE版本后,ListCtrl中的汉字显示为乱码,程序应该没有什么问题,现在我考虑是不是ListCtrl不支持UNICODE,需要做什么设置或用代码控制,希望大家鼎力帮助
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
primen
2004-05-12
打赏
举报
回复
MFC类都支持BSTR及LPSTR的,你一般不需要特别的进行字串转换。MS提倡用TCHAR。
zuoke
2004-05-12
打赏
举报
回复
TO: lygfqy(风清扬)
-----------------------------------------------
注:unicode是看不到字符内容的
———————————————————————
怎么看不到字符内容呢?可以在调试中看到啊
huaboy408
2004-04-09
打赏
举报
回复
怎么这么久都没人顶一下啊,这个问题搞的我难过死了。
我在ConvertPatientNameFromDicom(szText, szText);前后各测试了szText= _T("试验");的情况,发现在这个函数前加上这句话,调试时这个函数会出错,而加在这个函数后面,没有出错情况,且LISTCTRL中各项均为“试验”,看起来是ConvertPatientNameFromDicom(szText, szText);搞的鬼,我把这个函数贴上来,大家一起看看有什么问题,谢谢了
void ConvertPatientNameFromDicom( LPCTSTR in, LPTSTR out )
{
for( int i = 0; i < _tcslen(in); i++)
{
if(in[i] == _T('^'))
*out++ = _T(' ');
else
*out++ = in[i];
}
*out = _T('\0');
}
huaboy408
2004-04-08
打赏
举报
回复
TO: lygfqy(风清扬)
我用的是2000系统
因为查询到记录——添加到LISTCTRL控件中的这个过程都是通过Active X控件(*.dll)来实现的,而主程序和实现*.dll的程序不在一个WORKSPACE里面,我在*.dll程序里设置断点,根本不执行,这怎么办?
我觉得就是我说的那个字符串操作szText= OLE2T(bstrText);,这个就是加载前的字符串操作,不知道是不是正确?
lygfqy
2004-04-08
打赏
举报
回复
支持是肯定的
如果是2000以上版本系统,
系统内部都是unicode方式操作的
建议你跟一下代码
找到从载入字符串开始的地方看看是不是unicode形式
并到最后加载的时候
注:unicode是看不到字符内容的
huaboy408
2004-04-08
打赏
举报
回复
谢谢大家的帮助,我仔细看了代码,没有发现问题到底出在哪里,我把填充LISTCTRL控件的代码贴上,大家帮忙看一下,谢谢了。
void CEvent::SetOnlineItemToListView( long lIndex, IItem* pItem )
{
HRESULT hr = S_OK;
BOOL bRes = TRUE;
TCHAR szMsg[MAX_MSG_LEN+1];
LoadString(_Module.m_hInstResource, IDS_ERRORGETATTR, szMsg, MAX_MSG_LEN);
// Retrieve attributes and set it to the list view
try
{
for( int i = 0; i < MWL_LV_COLUMN_NUMCOLUMNS; i++ )
{
_variant_t var;
long lVal;
MWL_LV_COLUMNS_FLAGS nFlag = (MWL_LV_COLUMNS_FLAGS)(MWL_LV_COLUMN_PATIENTNAME+i);
m_pPMWLCtrl->GetColumnQueryParameterID(nFlag, &lVal);
if ( FAILED( (hr = pItem->raw_GetAttribute( (ID)lVal, &var )) ) )
{
lstrcat(szMsg, _T(" raw_GetAttribute"));
bRes = FALSE;
}
if( var.vt == VT_BSTR && var.bstrVal != NULL )
m_pPMWLCtrl->ListViewAddItem(var.bstrVal, lIndex, nFlag);
}
}
catch ( _com_error &e )
{
USES_CONVERSION;
#if _UNICODE
std::string errmsg( W2A(e.ErrorMessage()) );
#else
std::string errmsg( e.ErrorMessage() );
#endif
lstrcat(szMsg, (LPCTSTR)errmsg.c_str());
bRes = FALSE;
}
catch ( LPCTSTR perror )
{
lstrcat(szMsg, perror);
bRes = false;
}
if( !bRes )
{
LOG_ERROR(szMsg, hr );
}
}
STDMETHODIMP CPMWLCtrl::ListViewAddItem(BSTR bstrText, int iItem, MWL_LV_COLUMNS_FLAGS nColumn)
{
// TODO: Add your implementation code here
if( ! m_pColumnConfig || !m_hListView ) return S_OK;
TCHAR* szText;
USES_CONVERSION;
szText= OLE2T(bstrText);
colConfig* pColumns = (colConfig*)(m_pColumnConfig);
for ( int i = 0; i < MWL_LV_COLUMN_NUMCOLUMNS; i++)
{
if ( pColumns[i].nFlag == nColumn && pColumns[i].nVis && pColumns[i].nPos != -1 )
{
if( nColumn == MWL_LV_COLUMN_PATIENTNAME ||
nColumn == MWL_LV_COLUMN_PERFORMPHYSICIAN ||
nColumn == MWL_LV_COLUMN_REFERRINGPHYSICIAN
)
{
//Convert patient name from DICOM format (with '^' to replace ' ') to normal name string
ConvertPatientNameFromDicom(szText, szText);
}
//Add to list view
LV_ITEM item;
item.iItem = iItem;
item.iSubItem = pColumns[i].nPos;
item.pszText = szText;
item.cchTextMax = lstrlen ( szText );
BOOL iRet;
if ( pColumns[i].nPos == 0 )
{
//Remember the original item index in online query result.
item.mask = LVIF_TEXT|LVIF_PARAM;
item.lParam = iItem;
iRet = ListView_InsertItem ( m_hListView, &item );
ATLTRACE("\nInsertItem iRet=%d", iRet );
}
else
{
item.mask = LVIF_TEXT;
iRet=ListView_SetItem ( m_hListView, &item );
ATLTRACE("\nSetItem iRet=%d", iRet );
}
return S_OK;
}
}
return S_OK;
}
唯一对字符串进行操作的就szText= OLE2T(bstrText);这一句,不知道在UNICODE下是不是有问题,我对COM编程不了解,这些字符串的转换搞的我头疼,发现网上很少有这方面的介绍,哪位有了解多多指教,或者哪里有这方面的知识,谢谢大家了。
小李匪盗
2004-03-29
打赏
举报
回复
支持是毫无疑问的。我也出现过这种情况,是读的时候读错了。
蒋晟
2004-03-29
打赏
举报
回复
ListCtrl支持UNICODE
你的问题可能是错误的传递了非Unicode字符串到控件
huaboy408
2004-03-29
打赏
举报
回复
我现在需要确切的说法,ListCtrl是否支持UNICODE
马丁当
2004-03-29
打赏
举报
回复
你搞错了吧,怎么会不支持??
huaboy408
2004-03-29
打赏
举报
回复
这样说来,LISTCTRL就不支持UNICODE了?
那么多字段,我每个都转换,是不是太麻烦了,有没有其他好方法
fzd999
2004-03-29
打赏
举报
回复
#ifdef UNICODE
WideCharToMultiByte(……)
#endif
……
进行Unicode到多字节文本的转换
ExecuteNonQuery引发了System.ArgumentException类型异常
当开发时我们出现这个异常时,如果你搜索答案,得到更多的可能是一些复杂的东西,其实,首先我们应该检查一下出错地方的返回类型,比如,应该得到一个DataTable来,我们却写成了int类型,我就是这样,查询时明明应该用DataTable来接受,但是,我却写成了int类型来接受是否得到,这样就出现了这样一个异常。别想的太复杂了。 其次,如果不是返回类型的粗心,那么,一般...
建筑材料DBM座浆料技术规范:装配式建筑与设备安装中的接缝填充及高强度连接施工方案
内容概要:DBM座浆料是一种以水泥为基础材料,配以细骨料、外加剂等混合而成的干混料,适用于装配式建筑预制构件连接及设备安装工程中的座浆施工。该材料加水搅拌后具有良好的可塑性,硬化后具备高强度、微膨胀、不泌水等特点,符合JGJ 355-2015和GB 50231-2009相关规范要求。文章详细介绍了其产品特性、适用范围、性能指标、施工工艺(包括装配式建筑安装与设备安装)、注意事项以及贮存条件,强调了施工过程中对环境温度、湿度、操作流程的控制要求,确保工程质量与安全。; 适合人群:从事装配式建筑施工、设备安装工程的技术人员及现场施工管理人员。; 使用场景及目标:①用于预制墙板、桥墩等竖向构件连接接缝填充,保障结构整体性与安全性;②应用于机械设备安装中的垫板座浆施工,确保设备稳定运行;③指导现场科学施工,避免因材料使用不当或环境因素导致的质量问题。; 阅读建议:此资料侧重实际施工指导,使用者应结合现场情况严格执行工艺流程,特别注意环境温湿度控制、拌合用水量及养护措施,确保材料性能充分发挥。
围绕工程化发布流水线设计现代前端工程
标题:围绕工程化发布流水线设计现代前端工程 内容概要:聚焦性能优化、权限隔离、数据一致性与监控告警,讲解围绕工程化发布流水线设计现代前端工程的设计思路。 直播下载:sjbzb-tv.cn 直播下载:share.sjby.org 直播下载:zuqiu.sjbzb.mobi 直播下载:jrslive.sjbxx.mobi 直播下载:sjbzu.mobi
状态估计基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
内容概要:本文系统研究了在电力系统负荷发生突变的动态环境下,采用无迹卡尔曼滤波(UKF)与自适应无迹卡尔曼滤波(AUKF)进行三相状态估计的方法。通过Matlab平台实现了两种滤波算法的仿真模型,构建了包含三相电力系统建模、非线性状态方程推导、量测系统设计在内的完整状态估计框架。重点对比分析了UKF与AUKF在突变负荷扰动下的估计精度、收敛速度与鲁棒性,深入探讨AUKF通过实时调整噪声协方差实现自适应的能力,从而有效应对系统模型不确定性和外部动态变化,提升状态估计的可靠性。研究为智能电网在复杂动态工况下的实时监控、安全评估与优化控制提供了坚实的算法基础与仿真验证手段。; 适合人群:具备电力系统分析、现代控制理论基础及一定Matlab编程能力的研究生、科研人员和工程技术人员。; 使用场景及目标:① 掌握UKF在非线性电力系统状态估计中的具体应用流程与实现细节;② 深入理解AUKF的自适应机制及其在负荷突变、模型失配等动态工况下提升估计性能的原理与优势;③ 为智能电网的状态监测、故障诊断、实时调度与主动防御等高级应用提供可靠的算法支持与可复现的仿真平台。; 阅读建议:建议读者结合电力系统状态估计的经典理论,仔细研读并运行所提供的Matlab代码,重点关注系统模型的建立、UKF/AUKF算法的参数初始化、负荷突变事件的建模方式,以及两种算法在电压、电流等状态变量估计误差上的对比分析,通过仿真结果的可视化深入理解算法差异与工程应用价值。
基于Spring Boot的线程池隔离方案实战方案
标题:基于Spring Boot的线程池隔离方案实战方案 内容概要:从服务拆分、状态流转、容量评估与灰度发布出发,介绍基于Spring Boot的线程池隔离方案实战方案的工程化落地方式。 24直播网:www.tongjitt.com 直播下载:soccer.todayhot.com.cn 24直播网:watch.tnshw.cn 直播下载:zqhd.tn-one.com 直播下载:shijubeizb.toutiaozhibo.cn
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章