文字列の幅を、GetTextMetrics関数を使用し、tmAveCharWidth * strSizeを使用するより正確にWIN32で測定できますか?WIN32で文字列の幅を見つける方法(ピクセル単位)
答えて
GetTextExtentPoint32を使用してみてください。これは、指定されたデバイスコンテキストの現在のフォントを使用して、レンダリングされた文字列の幅と高さを論理単位で測定します。デフォルトのマッピングモードの場合、MM_TEXT、1論理単位は1ピクセルです。
ただし、現在のデバイスコンテキストのマッピングモードを変更した場合、論理ユニットはピクセルと同じではない場合があります。異なるmapping modes on MSDNについて読むことができます。マッピングモードでは、GetTextExtentPoint32によって返された寸法をピクセルに変換することができます。
VOID Example_MeasureString(HDC hdc) { Graphics graphics(hdc); // Set up the string. WCHAR string[] = L"Measure Text"; Font font(L"Arial", 16); RectF layoutRect(0, 0, 100, 50); RectF boundRect; // Measure the string. graphics.MeasureString(string, 12, &font, layoutRect, &boundRect); // Draw a rectangle that represents the size of the string. graphics.DrawRectangle(&Pen(Color(255, 0, 0, 0)), boundRect); }
あなたのメソッドは、GetTextExtentPoint32()を使うよりもはるかに優れています。 –
私は混乱したことがあります。 layoutRectは何ですか?私はそれを理解していない – Kross
これを使用する方法によっては、DT_CALCRECTを指定してDrawTextを使用することができます(これは常に正確に実行されます)。text/font/etcに基づいて必要な矩形のサイズを計算します。
私は確かに知りませんが、ようです:
HDC hDC = GetDC(NULL);
RECT r = { 0, 0, 0, 0 };
char str[] = "Whatever";
DrawText(hDC, str, strlen(str), &r, DT_CALCRECT);
が働くかもしれません。
Builderの場合、最初に新しいTLabelを動的に作成し、次にフォント属性を変更します。TLabelをautosizeとして設定します。TLabel width witchは、文字列幅をピクセル単位で表します。
int WidthPixels (String font, int size, String text)
{
TLabel* label = new TLabel(Form1); // dynamic TLabel
label->AutoSize = true;
label->Font->Name = font; // your font
label->Font->Size = size; // your font size
label->Caption = text; // your string
return label->Width;
}
int width = WidthPixels("Times New Roman", 19 , "Hey");
- 1. GWTの文字列幅(ピクセル単位)を計算します
- 2. 文字列/リスト内の単語の位置を見つける方法は?
- 3. 文字列内の単語の位置を見つける方法は?
- 4. 文字列の長さ(ピクセル単位)
- 5. 文字列内の単語を見つける方法は?
- 6. iosでオリジナル画像のピクセル位置を見つける方法
- 7. 文字列の部分文字列を見つける方法
- 8. 文字列内の文字の位置を見つける
- 9. コードネーム1の描画された文字列(ピクセル単位)の幅を正確に取得する方法は?
- 10. ピクセル単位で要素の幅を減らす方法
- 11. ビットマップ内の描画された文字列の幅を見つける方法
- 12. awkで使用する文字列のリスト内の単語の位置を見つける方法は?
- 13. C++の文字列配列上の単語の位置を見つける方法は?
- 14. 文字列の中で最短の単語を見つける方法C++
- 15. ファジーマッチで文字列内の部分文字列の位置を見つける方法
- 16. sas:テキスト文字列でトリガーの後に単語を見つける方法
- 17. PHPで空白文字列で単語を見つける方法は?
- 18. 多くの文字列の中で文字列を見つける方法
- 19. Pythonで文字列の色表現文字列を見つける方法は?
- 20. 文字列中で最長の単語を見つける
- 21. 文字列の最後の単語を見つける方法sqlite3
- 22. 文字列式Javaで文字列パターンを見つける方法は?
- 23. 文字列内の単語を見つけて変位を保存する方法
- 24. 文字列配列の長さを見つける方法は?
- 25. htmldocでクエリ文字列の値を見つける方法は?
- 26. Pythonで文字列のxを見つける方法
- 27. OpenJpa JPQLで文字列の長さを見つける方法
- 28. Python 3の文字列で '\'を見つける方法
- 29. 文字列のコンソールエスケープコードの位置を見つける
- 30. リスト内の文字列の位置を見つけるC#
"tmAveCharWidth * strSize"は、固定幅フォントでのみ有効です。 –