HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1103
GrapeColor(DION)HSP3.31の不具合7解決


GrapeColor(DION)

リンク

2012/11/3(Sat) 14:41:25|NO.50439

SetWindowLongでバグがありましたので報告します。
以下のURLのサンプルのプログラムを実行すると、どうやらSetWindowLongの行で実行が止まってしまうようです。
http://lhsp.s206.xrea.com/hsp_window.html#6
そしてそのバグが起きた後、元に戻すボタンややり直すボタン、さらにはコピー/切り取り/貼り付けの動作がおかしくなり、場合によってはエディタが強制終了になります。

これはもしかしたら私のパソコンだけで起こってる現象かもしれないので確認お願いします。



この記事に返信する


kanahiron

リンク

2012/11/3(Sat) 14:53:12|NO.50440

自分もHSP3.31です

#include "user32.as" #define WS_EX_LAYERED $80000 #define LWA_COLORKEY 1 #define ULW_ALPHA 2 ; 簡易的なOSチェック if varptr(SetLayeredWindowAttributes) = 0 { dialog "Windows 2000/XP/Vista じゃないっぽい。。。" end } ; 拡張ウィンドウスタイルにWS_EX_LAYEREDを追加適用 GetWindowLong hwnd, -20 SetWindowLong hwnd, -20, stat | WS_EX_LAYERED ; 透明度調節用のトラックバー pos 200, 200 winobj "msctls_trackbar32", "", , $50000000 | $100, 200, 30 hTrackbar = objinfo(stat, 2) ; TBM_SETPOS sendmsg hTrackbar, $405, 1, 100 sendmsg hTrackbar, $400 SetLayeredWindowAttributes hwnd, 0, 255 * stat / 100, ULW_ALPHA ; トラックバー用ウィンドウメッセージ oncmd gosub *vscroll, $114 stop ; EM_VSCROLL *vscroll if lparam = hTrackbar { ; TBM_GETPOS sendmsg hTrackbar, $400 ; 第3パラに透明度 (アルファ値の範囲 0〜255) SetLayeredWindowAttributes hwnd, 0, 255 * stat / 100, ULW_ALPHA return } return
元のソースをよくわかってないのですが、これで一応意図した動きになると思います
元のソースで、実はトラックバーがウインドウに存在しているんですが、何故か見えません
適当にウインドウの中央らへんをクリックしていくとトラックバーが現れます

で、解決法は最初からサブルーチンの中を一回だけ実行させて見えるようにしてます
これがあっているかは知りませんが



GrapeColor(DION)

リンク

2012/11/3(Sat) 15:02:39|NO.50441

色々なバージョンで試したところ、全てのバージョンで不具合が確認できました(HSP3以降)



mamo

リンク

2012/11/3(Sat) 15:16:54|NO.50442

Ver3.3
ウィンドウ中央にトラックバーが表示されて、スライドに合わせて透明度が変わる。
特に変わった動きは見えなかった。



KA

リンク

2012/11/3(Sat) 16:07:06|NO.50443

エディタからの実行・・・特に問題なし。
エディタの動作・・・特に問題なし。

ただし
 デバッグウインドウを出していると調整出来ない。
 半透明度0(つまり透明)にすると見失ってしまう。
ぐらいでしょうか。



inovia

リンク

2012/11/3(Sat) 16:12:19|NO.50444

元ソースで、

Windows XP Professional SP3 32bit
Windows Vista Home Premium SP2 32bit
Windows 7 Home Premium SP1 32bit
Windows 7 Home Premium SP1 64bit
Windows 7 Professional SP1 64bit
Windows Server 2008 R2 Standard SP1 64bit

の環境下で動作確認してみたところ、Vista以降でAeroを切ってWindowsクラシックなどにしている場合に、トラックバーが表示されない現象が発生するようです。
XP環境でも表示されない現象が発生しました。OSのbit数は特に関係がないようです。
ただし、エディタが強制終了するなどの現象は確認できませんでした。



KA

リンク

2012/11/3(Sat) 16:36:34|NO.50445

言い忘れたけど「不具合だ」「バグだ」と言う時は、みんなの意見を
聞いてからにしましょう。



GrapeColor(DION)

リンク

2012/11/5(Mon) 17:36:09|NO.50489

結局原因が分からずじまいですね・・・



ONION software Copyright 1997-2023(c) All rights reserved.