window下获得字符串所占像素

需要在创建字体后,删除新建字体前获得。

int size=40;//字符的大小
HFONT hFont = CreateFontA(size, 0, 0, 0, FW_MEDIUM, 0, 0, 0,
        charset, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
        DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, face);
HDC hdc = wglGetCurrentDC();//设备上下文环境
HFONT oldFont = SelectObject(hdc,hFont);
SIZE sz;//保存计算出来字符串长高所占像素,其中sz.cx代表长,sz.cy代表高度
string str = "Hello world!";
//获取当前hdc下字符串所占的像素长度和高度
::GetTextExtentPointA(hdc, str.c_str(), str.size(), &sz);  
SelectObject(hdc,oldFont);
//注意:一般情况下,字符串的高度和自己传入的size相等。

你可能感兴趣的:(c++)