c语言 绘制文本的字体为宋体大小为16样式为粗体
时间: 2024-03-01 11:49:55 浏览: 19
在 C 语言中绘制文本需要使用图形库,常见的图形库有 Windows API、SDL、OpenGL 等。以下是使用 Windows API 绘制文本的示例代码,字体为宋体,大小为 16,样式为粗体:
```c
#include <windows.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 创建窗口
HWND hwnd;
WNDCLASS wc = {0};
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = L"MyWindowClass";
RegisterClass(&wc);
hwnd = CreateWindow(wc.lpszClassName, L"My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow);
// 绘制文本
HDC hdc = GetDC(hwnd);
HFONT hFont = CreateFont(16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, L"宋体");
SelectObject(hdc, hFont);
TextOut(hdc, 100, 100, L"Hello, world!", 13);
DeleteObject(hFont);
ReleaseDC(hwnd, hdc);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
```
该代码中使用了 `CreateFont` 函数创建字体,`SelectObject` 函数选择字体,`TextOut` 函数绘制文本,具体使用方法可以参考 Windows API 文档。