掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DrawTextExの第6引数 (ID:851)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi自体の質問ではなく、APIの質問になってしまうのですが、 DrawTextExの第6引数DRAWTEXTPARAMS構造体についてお聞きしたいことが あります。 この構造体(へのポインタ)を指定した場合、処理された文字数が uiLengthDrawnメンバで取得できるわけですが、 これはバイト数なんでしょうか?文字数なんでしょうか? WinMeではバイト数が、WinXP(Home)では文字数がセットされるようです。 これは仕様なんでしょうか? 具体的には以下のように書きました。 var Text: String; r: TRect; pDTP: PDrawTextParams; begin Text:= 'あいうえお'; r:= Rect(...);//Textが十分に収まる広さを確保 New(pDTP);//メモリ確保 pDTP^.cbSize:= SizeOf(pDTP^);//自身のサイズを設定 DrawTextEx(Canvas.Handle, PChar(Text), -1, r, DT_WORDBREAK or DT_EXTERNALLEADING or DT_EDITCONTROL, pDTP); ShowMessage(IntToStr(integer(pDTP.uiLengthDrawn)));//WinMeでは10 //WinXpでは5 Dispose(pDTP);//メモリ開放 end; 上の例では文字列が収まるようにRect構造体をセットしていますが、 実際にやりたいことは書ききれなかった文字列を取得したいのです。 OSを判定して、条件分岐すれば回避できると思うのですが、 DrawTextEx自体の使い方が間違っているのかなと思い質問させていただきました。 Delphi6(Personal)を使っています。 どうかよろしくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.