Много возможностей. Например,
return str1.GetHashCode() ^ str1.GetHashCode()
Вы можете использовать CDC :: GetTextExtent для вычисления ширины текста определенного шрифта. Используйте CWnd :: GetDC , чтобы получить контекст устройства из элемента управления, отображающего текст.
Это утомительно. Вам нужно использовать CWnd :: GetFont ()
на кнопке, чтобы получить шрифт, который она использует, а затем использовать стандартный GetTextText
для объекта CDC
, где вы выберет этот шрифт.
Это выглядит примерно так:
CClientDC dc( &button );
CFont * pOldFont = dc.SelectObject( button.GetFont() );
... dc.GetTextExtent...
dc.SelectObject( pOldFont);
В дополнение к ответу @moncodemonkey вы можете позвонить по CDC :: DrawText с флагом DT_CALCRECT
. Таким образом, текст не будет нарисован, но CRect, который вы передаете функции, будет иметь ширину и высоту текста для рисования.
Это особенно полезно, если вы хотите рисовать текст с разрывами строки (используя Флаг DT_WORDBREAK
). Вы не сможете сделать это с помощью CDC :: GetTextExtent
.