
No.1ベストアンサー
- 回答日時:
幅については描画する範囲がプロポーショナルピッチによる幅の変動する為、取得する必要がありますが、
高さについては文字(といか行)毎に上下することはない(上下するようでは見にくい)ということから、指定したフォントで設定されている値がそのまま返却されるのでしょう。
それでも「描画される最小矩形」が必要なのでしょうか?
画面更新時はなるべく最小矩形の方が処理量は減るかと思われますが、現在のPCならドライバ任せでも問題になるような差は出ないと思われますが……。
それでも取得したい。
ということであれば文字列を分解してGetGlyphOutline()で取得することで1文字のフォントでの矩形サイズが取得できるでしょう。
ただし、文字描画の際にはベースラインなどを考慮しますので、ベースラインをそろえた上で算出する必要がありますが……
http://marupeke296.com/WINT_GetGlyphOutline.html
辺りが図になっているのでわかりやすい…でしょうかね。
各文字のグリフを取得した後、「ベースラインより上」と「ベースラインより下」のサイズをそれぞれ算出し、必要な文字フォント分の処理を終えた後で加算すればよいでしょう。
# uCharの設定がいろいろと手間…でしょうかね。(UNICODEならそれほどでもないかも知れませんが…SJISだと面倒)
# uFormatも…かな。アンチエイリアス有りと無しでは取得できるサイズが変わるでしょうし。
# cbBufferは0、lpvBufferはNULLでもかまわない…かも知れません。
使用する文字によっては… (gmBlackBoxY - gmGlyphOrign.y)がマイナスになってしまう場合もあるのでご注意を。
# "-"等、ベースラインより上だけで済んでしまうものの場合とか。
詳細なご返答ありがとうございます。
いろいろ考慮しなくてはならないことが多いですね。
片手間ではできそうもありません。
今はGetTextExtentPoint32を利用して、余裕ができたらWr5さんの提示していただいた方法を確認してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- 中学校 数学の先取り 2 2023/03/19 08:53
- 高校 高校のテストの高得点 3 2023/05/24 21:04
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- その他(職業・資格) 資格取得したけど、意味がない 9 2022/06/01 10:52
- その他(暮らし・生活・行事) 車やバイクも、冷蔵庫や洗濯機のように・・・ 1 2022/04/10 13:18
- Word(ワード) ワード。長い四角の中に文字を体裁良く入力するには。 2 2022/09/24 14:19
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックス内の文字サイズ変更
-
VB.NET2005 TextBox 高さ(Heig...
-
VBにて指定した通りにExcelの列...
-
コンボボックスの一部のアイテ...
-
Macbook Word フォント色変更で...
-
文字色 エクリプス
-
リストボックスのフォントをサ...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
コントロールの書式設定で、“コ...
-
勝手にウィンドウが開いて止ま...
-
エクセルのコントロールツール...
-
ダイアログの上のテキストボッ...
-
.NETでチャートにスクロールバ...
-
マインクラフト(pc版)で座標...
-
word
-
panelのスクロール表示について
-
【VB2008】 マウス操作の一時的...
-
Minecraft 統合版(PC)の描画距...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンボボックス内の文字サイズ変更
-
VB.NET2005 TextBox 高さ(Heig...
-
VBAのフォント変更(エクセルか...
-
フォントの大きさ
-
ドロップダウンリストのフォン...
-
プロポーショナルフォントの文...
-
エディットボックスのフォント...
-
VBA TEXTBOXテキストボックスの...
-
文字色 エクリプス
-
JTableのヘッダー文字のサイズ変更
-
リソースエディタでスタティッ...
-
コンボボックスの一部のアイテ...
-
VBにて指定した通りにExcelの列...
-
Msgboxで使用するフォントの指...
-
リストコンロールの一行だけを...
-
Macbook Word フォント色変更で...
-
EDITBOXに関して
-
static 文字が上に張り付いて・...
-
カレンダーコントロールとサイ...
-
GetTextExtentPoint32での高さ
おすすめ情報