GDI+ 文字输出
我现在做的程序里要实现一个CString变量的文字输出,但是GDI+提供的文字输出的函数DrawString要求的参数是一个常量指针,这个函数不适用,请问GDI+里有没有...
我现在做的程序里要实现一个CString变量的文字输出,但是GDI+提供的文字输出的函数DrawString要求的参数是一个常量指针,这个函数不适用,请问GDI+里有没有适用于变量输出的文字处理函数 或者 其他可行的方法 来实现变量输出
因为程序很大,基本上是用GDI+实现的,如果用GDI的函数,改动就大了,所以优先考虑GDI+的函数,请各位帮帮忙,不胜感激~ 展开
因为程序很大,基本上是用GDI+实现的,如果用GDI的函数,改动就大了,所以优先考虑GDI+的函数,请各位帮帮忙,不胜感激~ 展开
3个回答
展开全部
CString 是 MFC 的东西,转换成WCHAR,要用 A2W,或 T2CW。头文件#include <atlconv.h>
编译时,要含路径:
C:\Program Files\Microsoft Visual Studio\VC98\ATL\Include
------------------------------------------------------------
CString str("Test");
WCHAR buf[1024]; // 或自己动态分配
USES_CONVERSION; // 必须有这句
wcscpy(buf, A2W((LPCSTR)str)); // 转换,也可用 wcsncpy
如果用SDK:
Font myFont(L"Arial", 16);
PointF origin(0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0));
// DrawString 有几种参数设法,例如
graphics.DrawString(
buf,
wcslen(buf),
&myFont,
origin,
&blackBrush);
编译时,要含路径:
C:\Program Files\Microsoft Visual Studio\VC98\ATL\Include
------------------------------------------------------------
CString str("Test");
WCHAR buf[1024]; // 或自己动态分配
USES_CONVERSION; // 必须有这句
wcscpy(buf, A2W((LPCSTR)str)); // 转换,也可用 wcsncpy
如果用SDK:
Font myFont(L"Arial", 16);
PointF origin(0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0));
// DrawString 有几种参数设法,例如
graphics.DrawString(
buf,
wcslen(buf),
&myFont,
origin,
&blackBrush);
展开全部
如果是unicode直接用就行 DrawString 支持的
如果不是就得写个方法 把CString逐个转成WCHAR类型
CString _str = "dfasfsaf";
////////////////////////////////方法应该是这样具体没写
WCHAR string[256];
wcscpy(string, L"dsadsaa");
///////////////////////////这个地方写个循环加进去一个字符一个字符加
graphics.DrawString(string, (INT)wcslen(string), &font, pointF, &tBrush);
如果不是就得写个方法 把CString逐个转成WCHAR类型
CString _str = "dfasfsaf";
////////////////////////////////方法应该是这样具体没写
WCHAR string[256];
wcscpy(string, L"dsadsaa");
///////////////////////////这个地方写个循环加进去一个字符一个字符加
graphics.DrawString(string, (INT)wcslen(string), &font, pointF, &tBrush);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试CString.GetBuffer(), CString.ReleaseBuffer();
“这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容”
“这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容”
参考资料: http://baike.baidu.com/view/1608730.html?wtp=tt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询