◀一般トップへ
  • 5850 希望>FontLink
    • 5851 Re:希望>FontLink
      • 5856 Re2:希望>FontLink
        • 5857 Re3:希望>FontLink
          • 5859 Re4:希望>FontLink
            • 5891 Re5:希望>FontLink
              • 5892 Re6:希望>FontLink
              • 5899 Re6:希望>FontLink
              • 5900 Re6:希望>FontLink
  • [5850] 希望>FontLink 通りすがり 2007年02月20日 22:11

    サクラエディタってFontLink機能って使えないんですか?
    • [5851] Re:希望>FontLink すす 2007年02月21日 16:33

      ▼ 通りすがりさん
      > サクラエディタってFontLink機能って使えないんですか?
      過去に使えるようにして、という要望があったので
      たぶん使えないのでは、ないでしょうか?
      • [5856] Re2:希望>FontLink 通りすがり 2007年02月22日 20:15


        これについて分かりやすい解説がないんだけど

        ExtTextOut

        を

        ScriptStringAnalyse(SSA_LINK)
        ScriptStringOut
        ScriptStringFree

        で置き換えたらいけるのかなぁ?
        教えてえろい人!
        • [5857] Re3:希望>FontLink 通りすがり 2007年02月23日 18:21

          関係なかったorz
          sakura.iniを直編集、でふぉでFontlinkに入っている
          Lucida Sans Unicode
          Microsoft Sans Srif
          Tahoma
          を指定したら表示できた。
          等幅指定がなんか悪さしてるんだきっと・・・
          • [5859] Re4:希望>FontLink げんた 2007年02月24日 00:26


            >sakura.iniを直編集、でふぉでFontlinkに入っている
            >Lucida Sans Unicode
            >Microsoft Sans Srif
            >Tahoma
            >を指定したら表示できた。
            >等幅指定がなんか悪さしてるんだきっと・・・

            ChooseFont()に等幅フォントのみの指定をして呼びだしています.
            書くときは

            ::GetTextExtentPoint32( hdc, "大", 2, &sz );
            (なぜ"大"なのかは不明)
            で,1文字の幅を取得しています.

            文字が重なっちゃうのは自己責任として等幅指定は外した方がいいのかな?
            文字幅の取得方法はもっと良い方法がある?
            • [5891] Re5:希望>FontLink 通りすがり 2007年02月27日 18:25

              とりあえずCF_FIXEDPITCHONLYをはずしてChooseFontで
              FontLinkしてあるフォントを選択するとキャラクタセットがANSI_CHARSET
              になるので、これをDEFAULT_CHARSETに書き換えるとFontLink
              が動きました。
              プロポーショナルフォントを選んでもアプリでは等幅で描画する
              ので、重なりまくりですが・・・

              cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
              ...
              if( plf->lfCharSet == ANSI_CHARSET ){
              plf->lfCharSet = DEFAULT_CHARSET;
              }

              FIXEDフォントのFontLinkは試してないのでどうなるかわかりません。

              FontLinkへの道は開けたってことでOK
              • [5892] Re6:希望>FontLink 通りすがり 2007年02月27日 18:32

                秀丸はFontLinkしてあるフォントも一覧で出るんですよね。
                どうやって日本語フォントが表示可能か判断してるのか気になるところです。
              • [5899] Re6:希望>FontLink 通りすがり 2007年02月28日 19:48

                ※調査結果

                日本語を使いたいという前提で書くと、

                1.
                CharSetをSHIFTJIS_CHARSETにしてEnumFontFamiliesExを呼び出す。
                →FontLinkを含む。日本語のみ得られる

                2.
                CharSetをDEFAULT_CHARSETにしてEnumFontFamiliesExを呼び出す。
                →FontLinkを含まない。全言語(日本語、欧文、、、)

                2.で得られたフォントのうちCharSetが日本語となるものを、
                1.で得られたフォントから差し引くと、
                残ったものがFontLinkのフォントとなります。
                (実際にはFontLinkを区別する必要はないので、1.と2.のOR
                を取ればOKです)

                FontLinkをいじってないままだと
                 Microsoft Sans Serif
                 Lucida Sans Unicode
                 Tahoma
                が日本語フォントとして得られるはずです。(WinXP)
              • [5900] Re6:希望>FontLink 通りすがり 2007年02月28日 19:51

                ※実装方法

                ChooseFontダイアログはFontLinkフォントを抽出できないようなので、
                秀丸のようにフォント選択を自作する必要があります。
                一覧に表示するフォントは、1.と2.のORを取ったものです。
                CharSetとFixedも情報として得られるので絞込みもできますので、
                通常は日本語等幅フォントのみを表示し、高度な設定で
                その他の言語(欧文とか)やプロポーショナルを選べるように
                すればよいでしょう。

                あとは誰かがダイアログを作るだけと・・・
                (私は画面作る環境ないので無理orz)