C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.94977 の関連記事表示

<< 0 >>
■94977  Re[3]: SelectionFontの英字・ひらがな混合の場合について
□投稿者/ 魔界の仮面弁士 -(2020/06/08(Mon) 11:39:29)
    No94968 (Visual C#初心者 さん) に返信
    > 伺いたい内容としては、SelectionFont.Boldで太字判定
    > させたくても、フォント混在の場合はnullを返すので、

    「選択項目を太字(下線)にしたい」という点さえ実施できれば、
    「選択項目の太字(下線)の有無を判断したい」という点は、
    必ずしも必要ない気がします。(判定せずに強制適用すれば済む話なので)

    フォントが混在している範囲に対しても、選択範囲の Bold や Underline や Italic の設定を、
    一括して適用できれば良いのですよね。(ActiveX 版の RichTextBox はそういう実装になっている)


    > Richtextbox上のフォント混在文字列を選択した状態で
    > 太字(下線)の有無をobj.SelectionFont.Bold(Underline)で
    > 判定したいという趣旨になります。

    API を併用しても構わないのであれば、CHARFORMAT / CHARFORMAT2 構造体に
     .dwMask  = (CFM_Bold | CFM_UNDERLINE);
     .dwEffects= (CFE_Bold | CFE_UNDERLINE);
    をセットしておいた上で、
    EM_SETCHARFORMAT を SendMessage すれば、選択範囲内すべてを太字かつ下線にできます。同様に .dwMask 指定にて
    EM_GETCHARFORMAT を SendMessage すれば、選択範囲内すべてに太字/下線がそれぞれ適用済みなのかを取得できます。

    EM_GETCHARFORMAT は、選択範囲に対して「一部の文字だけが設定された状態」と「まったく設定されていない状態」とを
    区別できませんが、今回の要件では問題無いでしょう。

    C# 版のサンプル書いたので、後でアップしておきます。
記事No.94964 のレス /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -