(続々) Re: GDI+ で全角ハイフンが欠落する
前の記事を書いてるときには気づかなかったんですが…
ひょっとして、 KB944975 のタイトル 「GDI+ で (…中略…) 全角ハイフンが表示されない」 に引きずられちゃって、 「常に表示されないのだ」 と思ってしまった人が少なくないのかな?
※ しつこく書いておきます。 KB944975 で言う 「全角ハイフン」 とは、 U+2010 ( Hyphen ) のことです。
問題にしている現象は何か?
GDI+ に、
"This is a hy‐phen‐at‐ed word."
という文字列を渡して、 描画させると、
"This is a hy‐phen‐at‐ed word."
という表示になります。
"これは hy‐phen‐at‐ed word です。"
という文字列を渡して、 描画させると、
"これは hyphenated word です。"
という表示になります。
・ この 2つの例の相違点は何か?
・ 同じ動作をするべきではないのか?
これに対する、 KB944975 の内容は…
・ この 2つの例の相違点は何か?
→ 全角文字列中で使用された全角ハイフン文字を 特殊な制御文字として認識します。 ( 全角文字列中でなければ、 認識しません。 )
・ 同じ動作をするべきではないのか?
→ ( 異なる動作をしますが、 それは ) 仕様です。
…となっています。 ( カッコ内は私の補足 )
なお、 ここで 「特殊な制御文字」 と言うのは、 たぶん Soft Hyphen のことなんだろうと思います。
なぜなら、 KB944975 では言及されていないのですが…
GDI+ に、
"これは hy‐phen‐at‐ed word です。"
という文字列を渡して、 描画エリアの幅を制限して描画させると、
ated word です。"
という表示になります。 単語の途中で折り返したところだけが表示されるという、 あたかも Soft Hyphen のような表示のされかたです。
それと、 KB944975 で 「全角文字列中」 と言っているのは、 明らかに間違っています。
半角カナを末尾に付加して、
"This is a hy‐phen‐at‐ed word. ア"
という文字列を渡して、 描画させると、
"This is a hyphenated word. ア"
という表示になります。
※ このとき、 入力しているユーザの目には、 'ア' を打った瞬間に、 それまでに入力しておいた '‐' が消えてしまったように見えます。
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント
>「常に表示されないのだ」 と思ってしまった人が少なくないのかな?
ノ はい、勘違いしました。あっちでのアレはそういうことでしたか。了解。
投稿: 道化師 | 2007年11月26日 (月) 22時45分