2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows 10 Fall Creators Updateで発生しているリスト ビューでスクロールバーが出ている場合、マウスの範囲選択での複数選択をするとカーソルが画面の端っこに吹っ飛んでしまうという不具合の対策

Last updated at Posted at 2017-11-04

Windows 10 Fall Creators Updateではリスト ビューでスクロールバーが出ている場合、マウスの範囲選択での複数選択をするとカーソルが画面の端っこに吹っ飛んでしまうという不具合があります。

Tablacus Explorerというファイル管理ソフトではアドオンを使って対策しています。

最初はマウスカーソルが端っこの場合、元の位置に戻すという対処療法でした。

これにはひとつ問題があり、マウスカーソルが飛んでからの対処療法なのでマウスカーソルが一度、端っこに行ってしまう為にどうしてもリストがスクロールしてしまいます。

スクロール位置も覚えて戻そうかなとテストしていたところ(リストビューのスクロール位置を戻すのが、詳細とその他やグループの有無で違うなど結構ややこしいかったのです)

デバッグ ビューで数値を表示してみると何故かマウスカーソルの吹っ飛んでしまう現象が起こりません。

もしかしてと思い

リストのマウスカーソル移動時で左右ボタンが押されている場合に、RedrawWindowで再描画を行うようにしてみました。

予想通り不具合は発生しなくなりました。

なんでこんなので直るのかは私には解りませんが、とにかく直りました。

ソースはこんな感じです。

if (window.Addon == 1) {
  AddEvent("MouseMessage", function (Ctrl, hwnd, msg, wParam, pt)
  {
    if (Ctrl.Type == CTRL_SB && msg == WM_MOUSEMOVE) {
      if (api.GetKeyState(VK_LBUTTON) < 0 || api.GetKeyState(VK_RBUTTON) < 0) {
        api.RedrawWindow(Ctrl.hwnd, null, 0, RDW_NOERASE | RDW_INVALIDATE);
      }
    }
  });
}

リストビューじゃなくても何かをRedrawWindowで再描画すればOkっぽいです。

Windows 10 Fall Creators Updateでマウスカーソルが吹っ飛んで困っている方、ご自由にお使いください。

追記:2017/12/7
マウスのグローバルフックを使った対策ソフトができました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?