リッチエディットのWM_PAINT命令をフックすることで、改行文字を視覚化するプログラムを組んでいるのですが、GetCharPos命令で取得した文字位置の座標は左上隅のものなので、一般のテキスト文字と描画した文字がうまく横並びになりません。また、GetTextExtentでフォントの高さを取得することで、水平位置を調整しようと思ったのですが、フォントの高さとリッチエディットの一行単位の高さが異なるためか、以下のコード例(MFCにて作成)でもやはりきれいに揃いません(文字数制限のため、一部コードを省いています)。
void CRichEditEx::OnDrawFormatChar()
{
CString strText;
GetWindowText(strText);
CPoint ptCharL;
CClientDC dc(this);
//m_foFormatCharは
//SetDefaultCharFormat()で登録したフォントと
//サイズ・フォント名ともに同一
CFont* pfoOld = dc.SelectObject(&m_foFormatChar);
CSize sizChar = dc.GetTextExtent(_T("W"));
CRect rectClient;
GetRect(&rectClient);
int i, iPos = 0;
while(iPos != -1){
iPos = strText.Find(_T('\n'), iPos);
if(iPos != -1){
ptCharL = GetCharPos(iPos);
if(ptCharL.y > rectClient.bottom) break;
if(rectClient.PtInRect(ptCharL)){
dc.DrawText(_T("N"), CRect(ptCharL, ptCharL + sizChar), DT_SINGLELINE | DT_VCENTER);
}
}
}
フォントの上下余白を含めた高さ、あるいは、リッチテキストの1行単位の高さが取得できれば何とかなると思うのですが、よい方法はございますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- スタンプ・絵文字・顔文字 前回質問の続き 1 2022/08/24 16:06
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Java Java 南京錠 2 2023/02/04 11:46
- Word(ワード) Wordの表中の文字を選択した時の白黒反転の違い 1 2023/04/25 12:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数式中の文字をCambria Math以...
-
VB2008 LabelやButtonのTextを...
-
MAC用の書き込める履歴書テンプ...
-
DOSテキスト形式とは?
-
リッチエディットの独自描画で...
-
歪んだ感じの文字の書き方は?
-
LibreOfficeのフォントワークの...
-
word
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
バイナリファイルの編集
-
PowerPoint SmartArtの箇条書...
-
PDF→CSVへ変換
-
イラレでダブルクリックで文字...
-
Illustratorテキストエリアへ塗...
-
Publisherをエクセルファイルに
-
VB.NET でのLaod/unLoad につ...
-
Excel VBAで改行を含む文字列を...
-
photoshopのテキスト再編集
-
c言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数式中の文字をCambria Math以...
-
VBA超初心者です。
-
DataGridViewでセル内の特定の...
-
DOSテキスト形式とは?
-
LibreOfficeのフォントワークの...
-
VB2008 LabelやButtonのTextを...
-
TCPDFの多言語について
-
リッチエディットの独自描画で...
-
VBAでpng画像に文字列を描画す...
-
フォント画像の取得方法
-
テキスト情報が生きたPDF作成を...
-
外部HTMLテキストが埋め込みフ...
-
ファイル容量を軽くする方法。
-
【Excel2003】テキストBOXを認...
-
エクリプス(&TOMCAT)...
-
Macの動作環境でApplepagesで源...
-
MAC用の書き込める履歴書テンプ...
-
Flashでテキストアウトライン化...
-
word
-
名古屋の栄と錦は治安悪い?
おすすめ情報