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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0722
草超えて花メッセージダイアログにチェックボックス3解決


草超えて花

リンク

2021/7/22(Thu) 14:35:45|NO.93268

メッセージダイアログにチェックボックスを入れることは可能でしょうか。
このようなものです。
https://cdn-ak.f.st-hatena.com/images/fotolife/h/hilapon/20111222/20111222152111.png



この記事に返信する


ユーヤン

リンク

2021/7/22(Thu) 14:53:29|NO.93269

いのびあ氏が公開しているTaskDialogを使用することで可能です。
https://hsp.moe/#taskdialog



沢渡

リンク

2021/7/22(Thu) 19:06:05|NO.93271

いのびあさんのmodTaskDialogですが、これを使えばチェックボックス付きのダイアログは
表示できるのですが、表示するにはモジュール内の変数を、以下のサイト等を参考にして
いじる必要があるようです。
(モジュール内のコメントを見る限りそういう使い方を想定しているようで、
必要な定数が定義済みなのはありがたいです)
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/ns-commctrl-taskdialogconfig

#include "modTaskDialog.as" chk_prm=0 //ここにチェックボックスの初期値を入れる。0はチェックなし、1はチェックあり s="これはチェックボックス付ダイアログです。\n次回から表示したくない場合、下のチェックボックスをONにしてください。" //事前にモジュール内の変数をいじる //↓コマンドリンクではなく通常のボタンとして表示したいのでTDF_USE_COMMAND_LINKSは削除。 // 右上の[x]のみ有効にする。 dwFlags@mtd=TDF_ALLOW_DIALOG_CANCELLATION chk_msg="今後、このダイアログボックスを表示しない。" //チェックボックスに表示する文言 sdim chk_msg16,strlen(chk_msg)*2+2 : cnvstow chk_msg16,chk_msg //UTF-16に変換 pszVerificationText@mtd=varptr(chk_msg16) pfVerificationFlagChecked@mtd=varptr(chk_prm) DialogVistaEx "チェックボックス付きダイアログ","",s,"","OK",0,0 mes stat //OKを押したのなら101が、[x]を押したのなら2が返る。 mes chk_prm //チェックボックスにチェックを入れたのなら1が、入れていないのなら0になる。 //↓モジュール内の変数を初期化したいのならこれを実行。 //DialogVistaInit

本来この手のダイアログを出すにはSHMessageBoxCheckを使うのが「本道」なようですが、
レジストリをいじるようなので、個人的にはあまりお勧めしたくないです。
https://www.usefullcode.net/2006/12/post_43.html



草超えて花

リンク

2021/7/23(Fri) 03:35:06|NO.93278

ありがとうございます!
解決しました!



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