如何在MFC中一一绘制单独的文本
How to draw separate texts one by one in MFC?
我试图在MFC中逐一绘制两篇文本,因为它们将成为同一文本的一部分。现在,我正在画它们,因为它们只是一个字符串:
CString text1 = "A text";
CString text2 = "A second text";
CString textToDraw = text1 + text2;
CDC* dc = GetDC(); //assume that this is initialized elsewhere
dc->TextOut(0, 0, textToDraw);
将这两个文本绘制为一个很容易,因为我只需要找到应该开始绘制它们的位置即可。我面临的问题是如何计算应绘制第二个文本的新X坐标(考虑到可以在运行时选择文本,以使它们没有已知的长度(:
dc->TextOut(0, 0, text1);
int X;
//how should I compute X...?
dc->TextOut(X, 0, text2);
我感谢收到的任何帮助!
您可以使用dt_calectrect标志使用drawText((来计算 width 和 height height 该文本将占据而无需实际绘制文本而占据。以下可能是您问题的答案。
dc->TextOut(100, 100, text1);
RECT rect = { 0, 0, 0, 0 };
dc->DrawText(text1, &rect, DT_CALCRECT);
dc->TextOut(100 + rect.right, 100, text2);
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 用C++在单独的头文件中完成函数体
- 类模板的成员功能的定义在单独的TU中完全专业化
- 如何使用单独文件中的派生类访问友元函数对象
- CoInitialize()在单独的线程上崩溃而不返回
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 转换函数,将 std::数组的双精度作为参数或双精度作为参数单独转换
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 单独定义模板化嵌套类方法的正确语法
- 如何在MFC中一一绘制单独的文本
- 如何使用OpenGL在Windows上的同一应用程序中的两个单独的3D窗口中进行绘制
- 是否可以使用G_TRIANGLE_FAN或GL_TRIANGLE_STRIP绘制两个单独的四边形