「アウトライン解析の枠」を浮かしているNo.01613
h-tom さん 07/12/26 00:31
 

h-tom です。

確認です。
普通に使っている場合には、問題にならない話です。

「アウトライン解析の枠」を浮かしている場合、ビュアー機能付きgrep(注1)
を使うと、画面(grep結果<-->プレビュー)切替時に鬱陶しいので、マクロ
実行中は、「アウトライン解析の枠」を最小化することにしてみました。
(一時的な変更だと、ファイル切替時に元に戻るし、showoutlineだと、
元に戻すタイミングが難しいので。)
  //WM_SYSCOMMAND SC_MINIMIZEを送る
  #ret = sendmessage(#OUTLINE_Handle, 0x0112, 0xF020, 0);

で、最小化したのはいいのですが、元に戻すことが出来ません。
正確には、ある程度マクロを実行していると、元に戻せなくなります。
(だいたい、「ファイルタイプ別の設定」が切り替わるあたりかな?)
  //WM_SYSCOMMAND SC_RESTOREを送る
  #ret = sendmessage(#OUTLINE_Handle, 0x0112, 0xF120, 0);

最小化している「アウトライン解析の枠」の状態を調べてみたら、途中から、
「最小化(2)」ではなく、「通常のウィンドウ(1)」になってました。
(GetWindowPlacementで調べた値)

これは、「アウトライン解析の枠」を、常に同じ位置、大きさで表示させている
ためですかね?

注1:http://homepage3.nifty.com/_htom/macro/macro_etc.html#label-34

[ ]
RE:01613 「アウトライン解析の枠」を浮かNo.01614
秀丸担当 さん 07/12/26 15:27
 

>最小化している「アウトライン解析の枠」の状態を調べてみたら、途中から、
>「最小化(2)」ではなく、「通常のウィンドウ(1)」になってました。
>(GetWindowPlacementで調べた値)
>
>これは、「アウトライン解析の枠」を、常に同じ位置、大きさで表示させている
>ためですかね?

最小化してから、アウトライン解析の枠を非表示にして、また表示するとそうな
るようです。
最小化されることは想定していなかったので、表示するときに前回の位置を覚え
るときに最小化の位置で覚えて、表示させるときにその位置で表示するようです。
最小化のことも考慮すれば直ると思うので、直しておこうかと。

[ ]
RE:01614 「アウトライン解析の枠」を浮かNo.01615
h-tom さん 07/12/27 00:27
 

h-tom です。

>最小化されることは想定していなかったので、表示するときに前回の位置を覚え
>るときに最小化の位置で覚えて、表示させるときにその位置で表示するようです。
普通、「アウトライン解析の枠」を最小化しようなんて、思いませんしね。
(妙なことばかりやって申し訳ないです。)

>最小化のことも考慮すれば直ると思うので、直しておこうかと。
よろしくお願いします。

以下、余談です。
再現用のマクロも、既にありませんが、「アウトライン解析の枠」の最小化と復帰
をWindows APIで行っていた場合に、setactivehidemaru を使った、ウィンドウの
切り換えに失敗する場合がありました。
タイミング的には、今回の件と同じで、「ファイルタイプ別の設定」が切り替わる
辺りだと思います。

1)ビュアー画面で、「アウトライン解析の枠」を最小化
2)grep結果に移動して、キー待ち受け&情報取得
3)ビュアー画面に切り換えてファイル読込 ← ここで切り換えに失敗

grep結果には田楽DLLを、ビュアー側には自作DLLを読み込んでいたので、
DLL関数の読み出しに失敗し、エラーで止まってしまいました。

「アウトライン解析の枠」にフォーカスしたままなのが、原因なのかと思いまし
たが、sendmessageを使って最小化したら、失敗しなくなったので、詳しくは
調べませんでした。

まぁ、滅多にない状況だと思いますが、とりあえず報告しておきます。

[ ]
RE:01615 「アウトライン解析の枠」を浮かNo.01616
秀丸担当 さん 07/12/27 12:17
 

>以下、余談です。
>再現用のマクロも、既にありませんが、「アウトライン解析の枠」の最小化と復帰
>をWindows APIで行っていた場合に、setactivehidemaru を使った、ウィンドウの
>切り換えに失敗する場合がありました。

なぜそうなるのかよくわからないですが、そういうこともあったということで分
かりました。

[ ]