以前画像閲覧ソフト作成について、ご助言をいただいておりましたものです。
NO.33550
画像のサムネイル表示について http://hsp.tv/play/pforum.php?mode=all&num=33550 NO.33572 スライドショーについて http://hsp.tv/play/pforum.php?mode=all&num=33572 NO.34023 onexit命令を使用した、ボタン押下時のウィンドウ非表示について。 http://hsp.tv/play/pforum.php?mode=all&num=34023 NO.34024 btnimgで画像ボタンが表示されません http://hsp.tv/play/pforum.php?mode=all&num=34024 NO.33964 一時停止・再生ボタンについて http://hsp.tv/play/pforum.php?mode=all&num=33964
皆様のご助言・ご助力のお陰で、何とか動けるものが作成できましたが、
ダブルクリック時の問題が発生し、またご助言を頂きに参りました。
自分自身はシングルクリックで動作確認を行っておりましたが、
ダブルクリックの処理等がすっかり抜けており、
ダブルクリックで画像を表示させることにより、不具合が起こることを確認致しました。
ダブルクリックの取得については、
http://hspdev-wiki.net/?%A5%C0%A5%D6%A5%EB%A5%AF%A5%EA%A5%C3%A5%AF%BC%E8%C6%C0を参考にしながら、自分のソース内で以下のように対応致しました。
http://lhsp.s206.xrea.com/hsp_mouse.html(→マウスのクリックチェック)
#include "hspcv.as"
#include "scrlbar.hsp" #define WM_LBUTTONDOWN $0201 #define WM_LBUTTONDBLCLK $0203 #define WM_RBUTTONDOWN $0204 #define WM_RBUTTONDBLCLK $0206 #define WM_MBUTTONDOWN $0207 #define WM_MBUTTONDBLCLK $0209 // ダブルクリックを取得できるようウィンドウクラススタイル変更 (CS_DBLCLKS) GetClassLong hwnd, -26 SetClassLong hwnd, -26, stat | $8 oncmd gosub *lButtonDoubleClick, $0203 // WM_LBUTTONDBLCLK oncmd gosub *rButtonDoubleClick, $0206 // WM_RBUTTONDBLCLK /* トップページ */ *top /* 省略 */ /* ボタン押下により、「*titlelist」、「*slide」、「*thumbnail」のページへ遷移します */ /* タイトル一覧画面を表示 */ *titlelist /* 省略 */ /* listboxクリックにより、画像を別ウィンドウで表示します */ /* スライドショーを表示 */ *slide /* 省略 */ /* スライドショーを表示します。再生、一時停止、停止等をボタンで処理します */ /* サムネイル一覧画面を表示 */ *thumbnail /* 省略 */ /* 画像がサムネイル表示されており、サムネイルクリックにより、大きな画像を表示します */ /* プログラムの終了処理 */ *exit /* 省略 */ *lButtonDoubleClick *rButtonDoubleClick dialog "ダブルクリックは使用できません。\nシングルクリックで操作してください。" return
基本的に *top がID0、それ以外は ID3のウィンドウで動くようにしておりますが、
一応ウィンドウID0以外でも、ダブルクリックの判定は取れております。
しかし、判定が取れるのは、画面の何もない部分だけであり、
ボタン等をダブルクリックすると判定が取れず、
2回目のシングルクリックという形で、ボタンがクリックされてしまいます。
一番理想的なのは、ボタンとサムネイル画像を、
ダブルクリックにより処理できればいいのですが…
現在は、ボタンをダブルクリックすると、
シングルクリックの2回目ということで処理が流れます。
サムネイル画像をダブルクリックすると、
通常は大きな画像が表示されるのですが、画面が真っ白な状態で表示されてしまいます。
ダブルクリックでの処理がむずかしいようであれば、
ボタンやサムネイル画像をダブルクリックしたときに、ダイアログが出せるだけでも構いません。
(現在はダイアログも出せておりません)
ソースは長くなってしまうため、label名とダブルクリック処理のソースだけ記載しましたが、
必要であれば表示時のソース等も記載致します。
説明がわかりづらいかもしれませんが、どうかご助力の程、お願い致します。