gpt4 book ai didi

c++ - 如何获得使用 TextOut 打印的字符之间的间距?

转载 作者:行者123 更新时间:2023-11-30 04:38:50 25 4
gpt4 key购买 nike

我正在尝试计算每个单元格的大小(包含“ff”或“a0”等文本),以便 32 个单元格按宽度适合窗口。但是,charWidth*2 不代表单元格的宽度,因为它不考虑帐户中字符之间的间距。

如何获取字体大小,使 32 个单元格中的每个单元格都是两个字符,如“ff”,正好适合窗口的客户区?

Courier 是固定宽度字体。

RECT rect;
::GetClientRect( hWnd, &rect );
LONG charWidth = (rect.right-rect.left)/BLOCK_SIZE/2-2;
int oldMapMode = ::SetMapMode( hdc, MM_TEXT );
HFONT font = CreateFont( charWidth*2, charWidth, 0, 0, FW_DONTCARE, FALSE,
FALSE, FALSE, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS,
CLEARTYPE_QUALITY, FF_ROMAN, _T("Courier") );
HGDIOBJ oldFont = ::SelectObject( hdc, font );

for( int i = 0; i < BLOCK_SIZE; ++i )
{
CString str;
str.Format( _T("%.2x"), (unsigned char)*(g_memAddr+i) );
SIZE size;
::TextOut( hdc, (size.cx+2)*i+1, 1, str, _tcslen((LPCTSTR)str) );
}

最佳答案

关于c++ - 如何获得使用 TextOut 打印的字符之间的间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com