- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在哪里使用 TextOut 或 DrawText?
TCHAR text[]= "My First Window";
RECT rc;
HDC wdc = GetWindowDC(hWnd);
GetClientRect (hWnd, &rc);
SetTextColor(wdc, 0x00000000);
SetBkMode(wdc,TRANSPARENT);
rc.left=40;
rc.top=10;
TextOut(hdc,rc.left,rc.top,text,ARRAYSIZE(text));
EndPath(hdc);
SelectClipPath(hdc, RGN_AND);
我将它放在 WM_CREATE:
中
结果是一个空白窗口。如果需要,我可以提供更多代码,但这只是一个标准的 Win32 空白窗口。
这是我的第一个真正的 Win32 应用程序,我用谷歌搜索了一个小时,但没有找到问题的答案。
谢谢
最佳答案
Windows 不是那样工作的。你不能只画一次就期望你画的东西永远被展示。在处理 WM_CREATE
时,您的窗口可能甚至不可见。
(顺便说一句,您还在上面的代码中泄漏了 wdc
,并将 wdc
与 hdc
互换)。
您需要处理 WM_PAINT
消息并在其中进行绘制。调用BeginPaint()
获得一个 HDC,你可以使用它,然后调用 EndPaint()
完成后。
您应该读一本 Win32 编程初学者的书,因为处理 WM_PAINT
是非常基础的东西。从 MSDN 文档开始:
关于C++ DrawText 和 TextOut 不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149440/
让我感到沮丧的是,这对我来说是多么困难。我有一个具有打印功能的 MFC 应用程序。当我点击打印时,我想创建一个 pdf 文件,在 A4 页面的中心有一个单词。我正在使用 CPrintDialog,并且
如何删除或隐藏当前文本以添加新文本?目前,当他添加另一个文本时,文本与文本重叠。我尝试使用 InvalidateRect(hWnd, NULL, TRUE); 但我没有看到任何区别。 LRESULT
我正在重新学习 Delphi,因为多年来没有编写任何东西,并且忘记的比我学到的更多!我从一个简单的文件搜索例程开始,并将找到的文件放在多列列表框中。我找到的组件名为 MultiColListBox.p
我正在尝试计算每个单元格的大小(包含“ff”或“a0”等文本),以便 32 个单元格按宽度适合窗口。但是,charWidth*2 不代表单元格的宽度,因为它不考虑帐户中字符之间的间距。 如何获取字体大
我最近让我的主窗口使用 WM_PAINT 写文本,但现在我意识到这样做可能不是最好的消息,所以我正在尝试另一个版本; 主窗口包含一个菜单,在单击菜单项时会发送 ID_FILE_PID 消息,它会构建
这个问题在这里已经有了答案: How do I link to a library with Code::Blocks? (3 个答案) 关闭 9 年前。 我需要使用一些 GDI32 函数,但我需要
我正在 VS 2019 中制作桌面应用程序,并尝试使用 TextOut 打印变量 x。我知道问题不在于我改变 x 变量的方式,因为它使用 OutputDebugString 正确输出。我对 TextO
在 TextOut 行的这段代码中遇到一些问题,它说: error: cannot convert 'std::string* {aka std::basic_string*}' to 'LPCSTR
我正在使用 WinAPI 创建一个 Windows 应用程序。在处理窗口的 WM_PAINT 消息时,我正在使用 TextOut() 函数向用户显示更新的文本。 case WM_PAINT: {
这是我在表单的 OnPaint 事件中的代码: int elementCount; String tStr = L"15:00"; ::BeginPath(Canvas->Handle); ::Tex
我正在尝试使用 TextOut 函数打印一个新行。 我试过了 TextOut(hDC, 10, 20, "Hello\nWorld", strlen(text)); 但输出是“HelloWorld”。
我在哪里使用 TextOut 或 DrawText? TCHAR text[]= "My First Window"; RECT rc; HDC wdc = GetWindowDC
整个代码片段... #include #include #include using namespace std; //=====================================
因此,在搜索了一些 Win32 GUI 教程之后(我认为有关制作 GUI 的教程可能会让我更积极地制作 C++ 应用程序,因此通常更擅长使用 C++ 进行编程),我遇到了一个 rohitab 教程。我
我目前正在使用 C++ 开发一个打印插件,并开始使用 TextOut 来打印我想要的文本。它工作得很好,但显然,TextOut 用作参数的位置以像素为单位。有没有办法将它们设置为厘米或毫米?还是其他?
我正在编写一段代码,基本上是通过多次调用 TextOut 在屏幕上绘制文本。这是一个 C++ Win32 应用程序,我正在使用 Visual Studio 2012。在标记拼写错误等时,如何以 Wor
我发现以前使用过这两个功能,但我不太明白它们之间的区别。嗯,我知道 DrawText 需要一个格式化矩形,并且可以做一些文本格式化,而 textout 只是起始坐标,还有其他的区别吗? 最佳答案 Dr
我在项目中使用字体“Consolas”和/或“Courier New”来绘制类似 MS-DOS 的环境。在这个项目中,如果我使用 TextOut(TCanvas 的)在一条语句中按顺序打印 Box D
我正在使用 TextOut() 在 TCanvas 上绘制文本,但我想要更大的字体。 我能做什么? 最佳答案 试试这个 Canvas.Font.Size := ; Canvas.TextOut(0,0
我将描述我的总体目标,以防我提出的问题不是获得我正在寻找的答案的最佳形式。我有一个围绕 X 轴旋转的单词球体或“单词球”。当单词旋转到后面时(Z坐标从-1到1,从前到后),我打算更改每个单词的大小和不
我是一名优秀的程序员,十分优秀!