dllfunc("DisableDraw", 1);No.08401
ひろ さん 03/02/06 20:39
 
 秀まるおさん今日は、ひろです。
 「マクロ」→「マクロの実行」等で実行するマクロをダイアログで指定でき
ますが、標題の関数・オプションを使っているマクロをこの方法で実行した場
合、ダイアログの一部が残ることが有ります。
 再現性が確実ではないと思いますが、思いあたる状況は次の通りです。
(1) 実行前は、フォルダ・エリアのスクロール・バーが表示されていない
(2) ダイアログからマクロを実行
(3) DisableDraw 中にフォルダの展開などをして、スクロール・バーが現れる
   ような操作をする
(4) (2)で開いたフォルダは、マクロ終了時に閉じる→スクロール・バーはな
   くなる
(5) スクロール・バーの上下矢印部分と、「マクロ実行」のダイアログが表示
   されていた部分が再絵画されない
 こちらの環境は、Windows98+IE6.0+鶴亀 Ver.2.38 (2.37 でも同じ) です。

[ ]
RE:08401 dllfunc("DisableDraw", 1);No.08404
秀まるお さん 03/02/07 13:49
 
 フォルダ枠中のスクロールバー上が再描画されないんですよね。ならば、
EnableDrawの処理で、スクロールバーを強制再描画させれば解決しそうな気がし
ます。

 WindowsのAPIである「InvalidateRect」という関数では、ウィンドウの中身は
再描画するものの、スクロールバーや枠部分を再描画しないという問題がありま
す。この場合、SetWindowPosでSWP_DRAWFRAMEさせれば解決します。

 ということで、フォルダ枠についてSWP_DRAWFRAMEさせることにします。

[ ]
RE:08404 dllfunc("DisableDraw", 1);No.08408
ひろ さん 03/02/07 18:57
 
 秀まるおさん今日は、ひろです。
>  フォルダ枠中のスクロールバー上が再描画されないんですよね。
 バーの薄い灰色部分が問題ないのがちょっと謎ですが、
>  ということで、フォルダ枠についてSWP_DRAWFRAMEさせることにします。
この方法で、宜しくお願いします。またこれでも残るような場合は、ディスプ
レイ・ドライバのバグの可能性もあるので、仕様と考えることにします。

[ ]