在GDI编程中,输出文本通常使用`Graphics`对象的`DrawString()`方法。以下是一个使用GDI输出文本的示例代码:
```cpp
include include include using namespace Gdiplus; int main() { // 初始化GDI+ ULONG_PTR token; GdiplusStartupInput input; GdiplusStartup(&token, &input, NULL); // 创建一个Graphics对象 Graphics graphics(GetDC()->m_hDC); // 创建一个画笔 Pen blue(Color(255, 0, 0, 255), 3); // 创建一个画刷 SolidBrush textBrush(Color(255, 255, 0, 0)); // 创建一个字体系列 FontFamily fontFamily(L"宋体"); // 创建一个字体 Font font(&fontFamily, 16, FontStyleRegular | FontStyleBold, UnitPixel); // 创建一个字体格式 StringFormat format; format.SetAlignment(StringAlignmentCenter); format.SetLineAlignment(StringAlignmentCenter); // 创建一个字体区域 RectF layoutRect(10.0, 10.0, 110.0, 40.0); // 输出文本 graphics.DrawString(L"美好的一天", -1, &font, layoutRect, &textBrush); // 清理GDI+ textBrush.DeleteObject(); font.DeleteObject(); fontFamily.DeleteObject(); GdiplusShutdown(token); return 0; } ``` 在这个示例中,我们首先初始化了GDI+,然后创建了一个`Graphics`对象,用于在窗口的设备上下文上绘制文本。我们创建了一个蓝色画笔和一个红色画刷,并设置了字体系列、字体和字体格式。最后,我们使用`DrawString()`方法在指定的字体区域输出文本,并清理了所有创建的对象。 如果你使用的是C和WinForms,可以使用`Graphics`对象的`DrawString()`方法来输出文本。以下是一个简单的示例: ```csharp using System; using System.Drawing; using System.Windows.Forms; public class Form1 : Form { public Form1() { this.ClientSize = new Size(300, 200); this.Text = "GDI Text Output Example"; } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // 创建一个Graphics对象 Graphics g = this.CreateGraphics(); // 创建一个画笔 SolidBrush brush = new SolidBrush(Color.Blue); // 创建一个字体 Font font = new Font("宋体", 16, FontStyle.Regular | FontStyle.Bold); // 输出文本 g.DrawString("Hello World!", -1, font, Brushes.Black, 10, 10); } } ``` 在这个示例中,我们在`Form1`的`OnPaint`方法中创建了一个`Graphics`对象,并使用`DrawString()`方法在指定的位置输出文本。