WinBlogX(BlogXに書き込んだり設定を変えたりするためのWindowsクライアント)は日本語がダメダメ。なので、ちょっといじってみた。
Edit Server Filesダイアログの右側のテキストボックスが化けるのは単に英語のフォントになってるから。MS UI GothicあたりにしておけばOK。
BlogEditorのHTML表示は、WinBlogXControlsのほうのHtmlEditorクラスのフォント。HtmlEditor.csをデザインで開いて、「HTML」タブをクリックして下の白いところ(HTMLを表示するところ)のフォントをMS
UI Gothicあたりに しておけばOK。
メインの画面(SimpleBrowser.cs)とBlogEditorダイアログのHTML表示が化けるのは同じ原因。WinBlogXControlsのほうのHtml\HtmlControl.csの642行目くらいの
IntPtr hglobal = Marshal.StringToHGlobalUni(content);
をコメントアウトして変わりに
IntPtr hglobal = Marshal.AllocHGlobal(content.Length
* 2 + 2);
Marshal.Copy(new Byte[] { 0xff, 0xfe }, 0, hglobal, 2);
char[] buf = new char[content.Length];
content.CopyTo(0, buf, 0, content.Length);
Marshal.Copy(buf, 0, new IntPtr(hglobal.ToInt64() + 2), content.Length);
としてやる。
簡単に言うと、これは文字列からIStream*を作って、そいつをIEのIPersistStreamInitに流し込むんだけど、日本語が含まれているときはちゃんとBOMをつけてやらないとダメってこと。
一応これで日本語もOKみたい。けど、ちょっと使い難いとこもあるなぁ。
WinBlogX 改良、ありがとうございます。
返信削除さっそく試してみたいと思います。
使いづらい部分は、なんとか修正していきたいですね。
面白いプログラムエッセンスはいろいろあると思いますので。