【发布时间】:2015-07-02 07:43:28
【问题描述】:
我正在尝试使用自定义输出创建简单的应用程序。我正在使用 CreateFont 函数来加载具有特定选项的等宽字体。结果,文本已经用fi等连字绘制(DrawText)。
如何禁用此功能?
我很抱歉我的英语不好
创建字体
normal = CreateFont(char_height, 0, 0, 0, FW_NORMAL, 0, 0, 0,
RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, 5,
FIXED_PITCH | FF_DONTCARE, "Menlo");
bold = CreateFont(char_height, 0, 0, 0, FW_BOLD, 0, 0, 0,
RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, 5,
FIXED_PITCH | FF_DONTCARE, "Menlo");
打印
void Console::Print(string text, int color, int weight) {
RECT r;
r.top = padding + temp_y * (char_height + space_y);
r.bottom = r.top + char_height;
r.left = padding + temp_x * char_width;
r.right = padding + length();
HDC hdc = GetDC(hwnd);
SetTextColor(hdc, color);
SetBkColor(hdc, RGB(43, 48, 59));
SelectObject(GetDC(hwnd), weight == WEIGHT_NORMAL ? normal : bold);
DrawText(GetDC(hwnd), text.c_str(), text.length(), &r, DT_LEFT);
temp_x += text.length();
}
当前输出(注意单词“离线”):
期望的输出:
【问题讨论】:
-
不清楚你在问什么。您能否提供您的代码的 sn-p 和输出的屏幕截图?
-
@RemyLebeau 我添加了一些信息
-
请内联发布屏幕截图,不要发布链接(BTW 已损坏)。
-
你从哪里得到这个字体?
-
也许可以尝试找到它的另一个版本,或者另一种看起来像它的字体,看看是否可行。