简介本文向大家介绍OpenGL绘制文字(支持中文),感兴趣的朋友可以参考一下。
// 绘制文字(支持中文)
static void DrawString(GLfloat x, GLfloat y, GLfloat z, const char* str)
{
// 定位位置
glRasterPos3f(x, y, z);
int len, i;
wchar_t* wstring;
HDC hDC = wglGetCurrentDC();
GLuint list = glGenLists(1);
// 计算字符的个数
// 如果是双字节字符的(比如中文字符),两个字节才算一个字符
// 否则一个字节算一个字符
len = 0;
for (i = 0; str[i] != '\0'; ++i)
{
if (IsDBCSLeadByte(str[i]))
++i;
++len;
}
// 将混合字符转化为宽字符
wstring = (wchar_t*)malloc((len + 1) * sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, str, -1, wstring, len);
wstring[len] = L'\0';
// 逐个输出字符
for (i = 0; i < len; ++i)
{
wglUseFontBitmapsW(hDC, wstring[i], 1, list);
glCallList(list);
}
// 回收所有临时资源
free(wstring);
glDeleteLists(list, 1);
}
本文介绍一个C++代码实战例子:C++实现图片等比例缩放,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:Duilib实现截图截取功能并保存为jpg图片,主要涉及Duilib界面开发、截取屏幕到位图、位图保存到文件、bmp格式图片转jpg等知识,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:在Duilib窗口中使用OpenGL绘制图形示例,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:C++基于OpenGL绘制一个随鼠标旋转长方体,并支持鼠标滚轮缩小放大,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍OpenGL一个函数实现抗锯齿,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:OpenGL实现在透明窗口上绘制图形,具有一定的C++实战价值,感兴趣的朋友可以参考一下。