HTMLメールの表示の乱れNo.05992
dentaku さん 19/12/18 19:44
 
HTMLメールViewerを使用していて、スクロールさせると表示が乱れるというか、線状
のゴミが残ることがあります。
おそらく、条件は「高DPI(こちらの環境は250%)」と「内容に対してウィンドウの
横幅が狭い(自動で横スクロールバーが表示されるようなとき)」の2つです。HTML
メールの背景が濃色のものだとわかりやすいです。また、縦スクロールより横スク
ロールの方が顕著です。

インターネットオプションで関係ありそうな「GPUレンダリングではなく、ソフトウ
ェア レンダリングを使用する」と「スムーズ スクロールを使用する」のオンオフを
試してみましたが改善しませんでした。

改善の手立てはありますでしょうか。

[ ]
RE:05992 HTMLメールの表示の乱れNo.05993
秀まるお2 さん 19/12/19 10:37
 
 こちらの4Kディスプレイで250%DPIにしてテストしてみたら、たしかに横線が入る
ことがありました。ウィンドウサイズの横幅を狭めてTwitterからの通知メールを表
示させて、ホイールスクロールしたらかなりの頻度で横線が入りました。

 HTMLメールViewerの中のHTML形式表示してる所はWindowsのWebBrowserコントロー
ルというウィンドウ部品そのままで、そこの描画もその部品が勝手にやってるだけな
ので、それを僕の方でなんとかするってことは不可になります。

 とりあえず、画面のスケーリングを200%DPIにすると起きないようではありました。
あと、Internet Explorerでは起きないようではあります。

 他に考えられる対策としては、HTMLメールViewerの設定での互換性の設定をIE11相
当にするとか。
 (今からテストしてみます)

 あとあと、250%DPIにすると、スクロールした時に画面の背景の上の方にノイズみ
たいな横線が見えたり、デスクトップのアイコンが再描画を繰り返したりと、おかし
な現象も起きるようでした。

[ ]
RE:05993 HTMLメールの表示の乱れNo.05994
秀まるお2 さん 19/12/19 10:57
 
 互換性の設定をIE11相当にしてみましたが、ダメでした。

 ウィンドウの横幅が広ければゴミは出ないみたいなので、広げて使うってことでな
んとか回避してもらう作戦しか無さそうな気がします。それか、画面DPIが225%だと
起きないような気がします。


[ ]
RE:05994 HTMLメールの表示の乱れNo.06002
dentaku さん 19/12/19 18:46
 
回答ありがとうございます。

ウィンドウ幅を広げると緩和するのはわかっているんですが、全画面表示にした3枠
の本体ウィンドウ内にインライン表示というスタイルで使っているので、広げるため
には使い方を考え直さないといけません。

225%は、うーん、私の使っている15.6インチ4Kのノートで使うにはちょっと小さいで
すね……。秀丸だけならフォントサイズの調整で対応できますが、他のアプリすべて
に影響しますので……。すみません。

> あとあと、250%DPIにすると、スクロールした時に画面の背景の上の方にノイズみ
>たいな横線が見えたり、デスクトップのアイコンが再描画を繰り返したりと、おか
>しな現象も起きるようでした。

そういった現象はこちらでは起きていないと思います。何でしょうね。

ところで、いわゆるIEコンポーネントブラウザ(WebBrowserコントロールを使用して
いると思われます)で高DPI対応のものがあるので、問題の発生したHTMLメール(の、
添付HTMLファイル)を開いてみました。

Internet Explorer 11 は秀まるお2さんも書かれていますが問題ないです。

Ancia(http://www.egrath.net/index.php?FrontPage
問題は発生しませんでした。
(2年くらいバージョンアップされてないのが気になりますけど)

Avant Browser(http://www.avantbrowser.com/default.aspx?uil=ja
これは秀丸メールと同様に表示が乱れました。

Maxthon(https://www.maxthon.com/)
「Retro Mode」といってIEのエンジン(Trident)に切り替えられるんですが、問題
は発生しませんでした。

といったわけで、WebBrowserコントロールに問題があるのかもしれませんが、少なく
ともなんらかの回避方法があるのではないかと思っています。
すごく困っているというほどではないんですが、できれば改善していただきたくよろ
しくお願いします。

[ ]
RE:06002 HTMLメールの表示の乱れNo.06008
秀まるお2 さん 19/12/20 10:19
 
 いろいろテストして回避策を探してみたんですが、とりあえず、HTMLメールViewer
の設定で表示倍率を指定して、例えば80%とかを指定すれば、一応僕の所では大丈夫
になりました。

 そういう回避策でダメでしょうか。

 他に秀丸メール特有のってことになると「保護モード」の設定があったりはします
けども。Windows10の場合は保護モードをOFFにしてても別プロセスで動いてるので、
それのせいで表示が狂うってことはあるかもしれません。別プロセスにせずに動作さ
せるとマルチモニタ関係の設定が変わったりリモートデスクトップで接続したりする
時に保護違反で落ちてしまうユーザーさんがおられまして、これまた今さら同一プロ
セス内動作には出来ない事情があります。

 他にWebBrowserコントロールに対して何か出来ることがあるとしたら・・・ウィン
ドウのスタイル指定でのクリッピングの指定(WS_CLIPSIBLINGSとかWS_CLIPCHILDRE
N)はありますが・・・。一応テストしてみます。

[ ]
RE:06008 HTMLメールの表示の乱れNo.06012
秀まるお2 さん 19/12/20 11:13
 
 ウィンドウスタイルの指定を変える作戦はダメでした。

 他に、スクロールバーの太さをレジストリをいじって細くしたり太くしたりするテ
ストもしたんですが、ダメでした。

 Anciaは、WebBrowserコントロールを使ってますが、スクロールの処理は自前
(?)でやってるみたいです。いわゆる秀丸エディタでの「徐々にならめか」の方式
でスクロールしてます。Spyで調べてみてもキー入力は全部アプリ側がフックしてて、
WebBrowerコントロールには一切届いてないです。

 果たしてどういう仕組みでスクロールさせてるのか、ちょっと分かりませんが、何
か方法があるんだろうと思います。ネット検索などして調べてみます。--> C#でやる
方法はヒットするようです。

 maxthonは、Spyで調べたらそもそも的にWebBrowserコントロールは使ってないよう
です。

 とりあえず、C#での方法をC++でもインタフェース呼び出しで出来るだろうとは思
うのですが、先の長い話になってしまうので、ぼちぼち暇な時に調べるってことにさ
せていただきます。

[ ]
RE:06012 HTMLメールの表示の乱れNo.06018
dentaku さん 19/12/20 21:28
 
いろいろと調査ありがとうございます。anciaだけ例外的にWebBrowserでうまくでき
ている感じなんですね……。

80%を試してみました。メールの内容によるんですが、そこそこいい感じになるも
の・表示が小さすぎるものなどがあって、一律に80%というのはちょっと厳しいなあ
という感じでした。

ところで、その「表示倍率の指定」の下にある「スタイルシートの指定」が目に入っ
たので試してみたんですが、ちょっと強引な方法で表示の乱れを緩和できました。こ
うです。
body { overflow-x: hidden; }
横スクロールバーが表示されなければコンテンツの幅が狭いのと同じことになる、と
いう……。もちろん横にスクロールできない不便はあるので一長一短なんですが、当
面これで様子を見てみます。

>ぼちぼち暇な時に調べるってことにさせていただきます。
よろしくお願いします。
でも場合によっては思い切ってChromium Embedded Framework(CEF)なんかに変えち
ゃった方が(この問題に限らず)楽かもしれませんね……。

[ ]
RE:06012 HTMLメールの表示の乱れNo.06026
dentaku さん 19/12/21 09:53
 
あの、Maxthonですけど、メニューから「Switch Core」でWebkit/Tridentの切り替え
できるんですが(デフォルトはWebkit)、Tridentだとメインのコントロールのクラ
スが「Internet Explorer_Server」になります。
よくわかっていないうえ脇道にそれるような話ですみませんが、これはWebBrowserコ
ントロールとは違うんですか?

[ ]
RE:06026 HTMLメールの表示の乱れNo.06031
秀まるお2 さん 19/12/21 11:12
 
 とりあえずスタイルシートで横スクロールバーを消して対処していただいたという
ことで、助かります。

> でも場合によっては思い切ってChromium Embedded Framework(CEF)なんかに変え
>ちゃった方が(この問題に限らず)楽かもしれませんね……。

 WebBrowserコントロールは割と簡単に使えるんですが、他のライブラリを使うのは、
たぶん最初の勉強の段階で2週間くらいかかってそのあとテストするのにさらに2週
間、さらに著作権の関係を調べて問題が無いかどうか調べて、また英語と格闘
し・・・、変な脆弱性の問題が見つからないかびくびくしながら・・、といろいろ
先々のことを考えると、特定ユーザーさんの所で多少画面が乱れる程度でおいそれと
そういう得体の知れない物に手を出すことは、現実的では無いです。


 それと、Maxthonについては・・・

 Maxthonもう一回インストールしてテストしてみたんですが、そのボタンの右上に
カギアイコンが出てきてて、クリックしても何の反応も無いようです。

 なんだかよく分かりません。

 それとさらに、Anciaでやってるような自前スクロールですが、これも実際やると
なると、キー入力やマウスホイールのメッセージをフック(横取り)して自前でスク
ロールの処理をしないといけなくて、かなり骨の折れる話になります。とりあえず回
避策があるのであれば、そこまで手を加えるのは勘弁させてもらおうと思います。

 今回の問題はWebBrowserコントロールにバグがあることは間違いないと思うので、
Windows10のフィードバックハブに僕の方から報告だけしてみます。ただ、WebBrowse
rコントロールもInternet Explorerも脆弱性の問題以外は手直しすることは無いと思
うので、たぶん放置されるだろうと思います。

[ ]
RE:06031 HTMLメールの表示の乱れNo.06033
dentaku さん 19/12/21 15:26
 
対応ありがとうございます。

CEFについては、この問題のためだけに変更を、というつもりの発言ではないです。
勘違いさせてすみません。
個人的に、ちょっと別件でもIEに関してはコントロールを含めて現状でも将来的にも
どうかと思っているところがあって、採用例の多いCEFを知って、参考になればと名
前を上げさせてもらったというところです。

Maxthonのボタンはデフォルトで表示されるホームページだとロックされているみた
いですが、たとえば https://www.yahoo.co.jp/ とか https://hide.maruo.co.jp/
とかを開いていると押せました。

[ ]
RE:06033 HTMLメールの表示の乱れNo.06048
秀まるお2 さん 19/12/23 09:54
 
 とりあえずWebBrowserコントロールが一番お手軽だし著作権関係も何も気にしなく
ていいので、よほどのことが無い限りはこのままにておこうと思います。たぶん他の
エンジン対応するよりは自前スクロール対応した方が簡単だと思うので、対応すると
したら自前スクロール対応の方を先にしようと思います。

[ ]
RE:06048 HTMLメールの表示の乱れNo.06051
秀まるお2 さん 19/12/23 11:03
 
 フィードバックHubには今投稿しました。

タイトル:
WebBrowserコントロール+画面DPI250%+横スクロールバーあり時にスクロールで横線
ゴミ表示

詳細:
WebBrowserコントロールを使うアプリケーション(C++で作成)を、画面DPI250%の環
境で使った場合で、ウィンドウサイズの横幅を狭めて横スクロールバーが出てくるよ
うにした場合で、上下矢印キーで上下スクロールさせるとウィンドウの中に横線のゴ
ミが表示されます。

付属:
画面ハードコピーに「dust(horizontal line)」って補足を入れてアップロードしま
した。

[ ]