HSPテンプレート
普段私が使用しているHSPテンプレート。ウィンドウメッセージが扱いやすいように定義されています。
関連:
自己流テンプレート2
main.hsp
//--------------------------------------------------------------------
//
//
//
//
//
//--------------------------------------------------------------------
*inc //## インクルード
//--------------------------------------------------------------------
// Include
//--------------------------------------------------------------------
#include "define.hsp"
#include "kernel32.as"
#include "user32.as"
#include "winmm.as"
#include "shell32.as"
#include "comctl32.as"
#include "comdlg32.as"
#include "gdi32.as"
#include "module_basic.hsp" //基本モジュール
//--------------------------------------------------------------------
// マクロ定義
//--------------------------------------------------------------------
#define global _exename "" //実行ファイルの名前(重要)
#define global _tit "" //ソフトウェアタイトル名
#define global _ver "" //ソフトウェアバージョン
#define global _ininame _exename+".ini" //iniファイルの名前
#define global startchek 0 //二十起動防止コンパイルチェック
#define global _winx ginfo(12) // ウィンドウの縦のサイズを代入
#define global _winy ginfo(13) //ウィンドウの横のサイズを代入
*deff //## マクロ定義
*pack //## パック設定
//--------------------------------------------------------------------
// パック設定
//--------------------------------------------------------------------
#packopt name _exename
#packopt type 0
#packopt hide 1
//--------------------------------------------------------------------
// 基本変数管理用変数
//--------------------------------------------------------------------
winx=640 //初期ウィンドウの縦のサイズを代入
winy=480 //初期ウィンドウの横のサイズを代入
winposx=(ginfo(20)-winx)>>1 //ウィンドウの表示位置
winposy=(ginfo(21)-winy)>>1 //ウィンドウの表示位置
softtitle=_tit //ソフトウェアタイトル
*variable //## 基本変数
//--------------------------------------------------------------------
// ▽モジュールエリア
//--------------------------------------------------------------------
//共通モジュール
#module "mod"
#global
*module //## モジュール
*syoki //## 初期動作
//--------------------------------------------------------------------
// 初期動作
//--------------------------------------------------------------------
#if startchek
startchek_start _tit //2重起動のチェック
#endif
//iniファイルの読み込み
iniload _ininame,data
//iniファイルが存在したかどうか
if stat!-1{
winposx=inigetint ("pos","posx",data)
winposy=inigetint ("pos","posy",data)
}else{
}
*scrset //## スクリーン作成
//--------------------------------------------------------------------
// スクリーン作成
//--------------------------------------------------------------------
//メイン
screen 0,winx,winy,6,winposx,winposy //スクリーンウィンドウの初期化
gosub *input_pos //ウィンドウ位置の記憶
title _tit
objmode 1
objsize 60,21
sysfont 17
*onmsg //## オンメッセージ定義
//--------------------------------------------------------------------
// オンメッセージ定義
//--------------------------------------------------------------------
gsel 0
onexit *owari
oncmd gosub *ON_WM_MOVE,WM_MOVE //ウィンドウが移動
oncmd gosub *ON_WM_LBUTTONDOWN,WM_LBUTTONDOWN //左クリックを押した
oncmd gosub *ON_STARTCHEK,WM_USER+0x0200 //二十起動のチェック
*main //## メインスクリプト
//--------------------------------------------------------------------
// @メインスクリプト
//--------------------------------------------------------------------
gsel 0
syscolor2 15:boxf //システム背景色
syscolor2 8 //文字色
gsel 0,1 //初期画面表示
stop
*onmsgarea //## オンメッセージ処理
//--------------------------------------------------------------------
// オンメッセージ処理
//--------------------------------------------------------------------
*ON_WM_LBUTTONDOWN //左クリックを押した
//id 0
if ginfo_intid=0{
lockgsel 0,0
if hspstat=1{
title "MOUSE("+mousex+","+mousey+") _WINX-MOUSE("+(_winx-mousex)+","+(_winy-mousey)+")"
}
locksel 1
}
return
*ON_WM_MOVE //ウィンドウが移動
//id 0
if ginfo_intid=0{
lockgsel 0,0
if (LOWORD(lparam)<(ginfo(12)+ginfo(21)))&(HIWORD(lparam)<(ginfo(13)+ginfo(21))){
if (LOWORD(lparam)>-ginfo(12))&(HIWORD(lparam)>-ginfo(13)){
gosub *input_pos //ウィンドウ位置の記憶
}
}
lockgsel 1
}
return
*ON_STARTCHEK //二十起動された
lockgsel 0,0
actwin hwnd
lockgsel 1
return
*subroot //## サブルーチン
//--------------------------------------------------------------------
// サブルーチン
//--------------------------------------------------------------------
*input_pos //ウィンドウ位置の記憶
lockgsel 0,0
inisetint "pos","posx",ginfo(4),data
inisetint "pos","posy",ginfo(5),data
lockgsel 1
return
*owari //ソフト終了
chdir dir_main
inisave _ininame,data
end
define.hsp
#define global WM_ACTIVATE 0x0006 //ウィンドウのアクティブ化・非アクティブ化
#define global WM_CHAR 0x0102 //キーボードからの文字の入力
#define global WM_CLEAR 0x0303 //エディットコントロールのテキストの削除
#define global WM_COMMAND 0x0111 //メニューアイテムの選択・コントロールからの通知
#define global WM_CONTEXTMENU 0x007B //コンテキストメニューを表示するために受け取る通知
#define global WM_COPY 0x0301 //エディットコントロールのテキストのコピー
#define global WM_CUT 0x0300 //エディットコントロールのテキストの切り取り
#define global WM_DROPFILES 0x0233 //ファイルがドロップされた
#define global WM_GETFONT 0x0031 //コントロールのフォントを取得
#define global WM_GETICON 0x007F //ウィンドウのアイコンを取得
#define global WM_GETTEXT 0x000D //ウィンドウタイトルやコントロールのテキストを取得
#define global WM_GETTEXTLENGTH 0x000E //ウィンドウタイトルやコントロールのテキストのサイズを取得
#define global WM_KEYDOWN 0x010 //非システムキーが押された
#define global WM_KEYUP 0x0101 //押されていた非システムキーが離された
#define global WM_LBUTTONDBLCLK 0x0203 //マウス左ボタンをダブルクリック
#define global WM_LBUTTONDOWN 0x0201 //マウス左ボタンを押し下げ
#define global WM_LBUTTONUP 0x0202 //マウス左ボタンを離した
#define global WM_MBUTTONDBLCLK 0x0209 //マウス中央ボタンをダブルクリック
#define global WM_MBUTTONDOWN 0x0207 //マウス中央ボタンを押し下げ
#define global WM_MBUTTONUP 0x0208 //マウス中央ボタンを離した
#define global WM_MOUSEMOVE 0x0200 //マウス移動時に実行
#define global WM_MOUSEHOVER 0x02A1 //マウスが一定時間同じ場所にある
#define global WM_MOUSELEAVE 0x02A3 //マウスがウィンドウ外にでる
#define global WM_MENUSELECT 0x011F //メニューアイテムが選択された
#define global WM_MOVE 0x0003 //ウィンドウの移動
#define global WM_NOTIFY 0x004E //コモンコントロールからの通知
#define global WM_NULL 0x0000 //効果をもたないメッセージ
#define global WM_PASTE 0x0302 //エディットコントロールのテキストの貼り付け
#define global WM_RBUTTONDBLCLK 0x0204 //マウス右ボタンをダブルクリック
#define global WM_RBUTTONDOWN 0x0205 //マウス右ボタンを押し下げ
#define global WM_RBUTTONUP 0x0206 //マウス右ボタンを離した
#define global WM_SETFONT 0x0030 //コントロールのフォントを設定
#define global WM_SETTEXT 0x000C //ウィンドウタイトルやコントロールのテキストを設定
#define global WM_SIZE 0x0005 //ウィンドウサイズ変更
#define global WM_SYSCOMMAND 0x0112 //システムメニューアイテム選択
#define global WM_UNDO 0x0304 //エディットコントロールの直前の操作を元に戻す
#define global WM_USER 0x0400 //アプリケーション定義メッセージの先頭
#define global WM_PAINT 0x000F //ウィンドウを書きなおすときに送られる
#define global WM_CLOSE 0x0010 //アプリケーション終了時に送られる
#define global WM_DESTROY 0x0002 //ウィンドウが破棄されたときに送られる
#define global WM_GETMINMAXINFO 0x0024 //ウィンドウのサイズが変更されようとしたときに送られる サイズ移動フラグ
#define global WM_SYSCOLORCHANGE 0x0015 //システムカラーが変更されたのを知らせる
#define global WM_ERASEBKGND 0x0014 //自動で背景を削除されないようにする
#define global WM_SHOWWINDOW 0x0018 //ウィンドウが表示されるかされないか
#define global WM_COPYDATA 0x004A
#define global WM_CANCELJOURNAL 0x004B
#define global WM_SETFOCUS 0x0007
#define global WM_KILLFOCUS 0x0008
#define global WM_ENABLE 0x000A
#define global WM_QUERYENDSESSION 0x0011
#define global WM_QUERYOPEN 0x0013
#define global WM_ENDSESSION 0x0016
#define global WM_QUIT 0x0012
#define global WM_WININICHANGE 0x001A
#define global WM_SETTINGCHANGE WM_WININICHANGE
#define global WM_DEVMODECHANGE 0x001B
#define global WM_ACTIVATEAPP 0x001C
#define global WM_FONTCHANGE 0x001D
#define global WM_TIMECHANGE 0x001E
#define global WM_CANCELMODE 0x001F
#define global WM_SETCURSOR 0x0020
#define global WM_MOUSEACTIVATE 0x0021
#define global WM_CHILDACTIVATE 0x0022
#define global WM_QUEUESYNC 0x0023
#define global WM_PAINTICON 0x0026
#define global WM_ICONERASEBKGND 0x0027
#define global WM_NEXTDLGCTL 0x0028
#define global WM_SPOOLERSTATUS 0x002A
#define global WM_DRAWITEM 0x002B
#define global WM_MEASUREITEM 0x002C
#define global WM_DELETEITEM 0x002D
#define global WM_VKEYTOITEM 0x002E
#define global WM_CHARTOITEM 0x002F
#define global WM_SETHOTKEY 0x0032
#define global WM_GETHOTKEY 0x0033
#define global WM_QUERYDRAGICON 0x0037
#define global WM_COMPAREITEM 0x0039
#define global WM_GETOBJECT 0x003D
#define global WM_COMPACTING 0x0041
#define global WM_COMMNOTIFY 0x0044 /* no longer suported */
#define global WM_WINDOWPOSCHANGING 0x0046
#define global WM_WINDOWPOSCHANGED 0x0047
#define global WM_POWER 0x0048
#define global WM_MOUSEWHEEL $0000020A
#define global WM_HSCROLL $00000114
#define global WM_VSCROLL $00000115
#define global WM_TIMER $00000113
#define global WM_MOVING $00000216
/*
* Edit Control Styles
*/
#define global ES_LEFT 0x0000
#define global ES_CENTER 0x0001
#define global ES_RIGHT 0x0002
#define global ES_MULTILINE 0x0004
#define global ES_UPPERCASE 0x0008
#define global ES_LOWERCASE 0x0010
#define global ES_PASSWORD 0x0020
#define global ES_AUTOVSCROLL 0x0040
#define global ES_AUTOHSCROLL 0x0080
#define global ES_NOHIDESEL 0x0100
#define global ES_OEMCONVERT 0x0400
#define global ES_READONLY 0x0800
#define global ES_WANTRETURN 0x1000
#define global ES_NUMBER 0x2000
/*
* Edit Control Notification Codes
*/
#define global EN_SETFOCUS 0x0100
#define global EN_KILLFOCUS 0x0200
#define global EN_CHANGE 0x0300
#define global EN_UPDATE 0x0400
#define global EN_ERRSPACE 0x0500
#define global EN_MAXTEXT 0x0501
#define global EN_HSCROLL 0x0601
#define global EN_VSCROLL 0x0602
#define global EN_ALIGN_LTR_EC 0x0700
#define global EN_ALIGN_RTL_EC 0x0701
#define global EC_LEFTMARGIN 0x0001
#define global EC_RIGHTMARGIN 0x0002
#define global EC_USEFONTINFO 0xffff
#define global EMSIS_COMPOSITIONSTRING 0x0001
#define global EIMES_GETCOMPSTRATONCE 0x0001
#define global EIMES_CANCELCOMPSTRINFOCUS 0x0002
#define global EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
#define global REG_BINARY 3 ;バイナリデータ
#define global REG_DWORD 4 ;32ビット整数
#define global REG_DWORD_BIG_ENDIAN 5 ;バイト順がWindowsと逆の32ビット値
#define global REG_EXPAND_SZ 2 ;展開前の環境変数( 例えば %PATH% )
#define global REG_LINK 6 ;Unicodeシンボリック
#define global REG_MULTI_SZ 7 ;二つのVBNULLCHARで終わる文字列
#define global REG_NONE 0 ;未定義のタイプ
#define global REG_RESTORE_LIST 8 ;デバイスドライバリソースリスト
#define global REG_SZ 1 ;文字列
#define global NULL 0
//reg
#define HKEY_CLASSES_ROOT 0x80000000
#define HKEY_CURRENT_USER 0x80000001
#define HKEY_LOCAL_MACHINE 0x80000002
#define HKEY_USERS 0x80000003
#define HKEY_PERFORMANCE_DATA 0x80000004
#define HKEY_CURRENT_CONFIG 0x80000005
#define HKEY_DYN_DATA 0x80000006
//アクセス権
#define global KEY_ALL_ACCESS 0x001F003F ;アクセス権全て
//プロセスの優先度クラス
#define global NORMAL_PRIORITY_CLASS 0x00000020 //通常時
#define global IDLE_PRIORITY_CLASS 0x00000040 //システムがアイドル状態のときにだけ実行するプロセス
#define global HIGH_PRIORITY_CLASS 0x00000080 //タイムクリティカルなタスクを実行するプロセス
#define global REALTIME_PRIORITY_CLASS 0x00000100 //最も高い優先順位クラスを持つプロセス
//スレッドの相対優先度
#define global THREAD_PRIORITY_IDLE (-15) //プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 16 にします。それ以外のときはスレッド優先度を 1 にします
#define global THREAD_PRIORITY_LOWEST (-2) //スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 低く設定します。
#define global THREAD_PRIORITY_BELOW_NORMAL (-1) //スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 低く設定します。
#define global THREAD_PRIORITY_NORMAL 0 //スレッド優先度をプロセスの優先度クラスの通常の優先度に設定します。
#define global THREAD_PRIORITY_HIGHEST 1 //スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 高く設定します。
#define global THREAD_PRIORITY_ABOVE_NORMAL 2 //スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 高く設定します。
#define global THREAD_PRIORITY_TIME_CRITICAL 15 //プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 31 にします。それ以外のときはスレッド優先度を 15 にします。
/*
* Identifiers for the WM_SHOWWINDOW message
*/
#define global SW_PARENTCLOSING 1 //親ウィンドウがアイコン化されようとしている
#define global SW_OTHERZOOM 2 //別のウィンドウが最大化されようとして見えなくなろうとしている
#define global SW_PARENTOPENING 3 //親ウィンドウが表示されようとしている
#define global SW_OTHERUNZOOM 4 //別のウィドウがアイコン化されたため
#define global WM_SETREDRAW 0x000B
//====== COMMON CONTROL STYLES ================================================
#define global CCS_TOP 0x00000001
#define global CCS_NOMOVEY 0x00000002
#define global CCS_BOTTOM 0x00000003
#define global CCS_NORESIZE 0x00000004
#define global CCS_NOPARENTALIGN 0x00000008
#define global CCS_ADJUSTABLE 0x00000020
#define global CCS_NODIVIDER 0x00000040
#define global CCS_VERT 0x00000080
//マウス移動 mouse_event
#define global MOUSEEVENTF_MOVE 0x0001 /* mouse move */
#define global MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */
#define global MOUSEEVENTF_LEFTUP 0x0004 /* left button up */
#define global MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */
#define global MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */
#define global MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */
#define global MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */
#define global MOUSEEVENTF_XDOWN 0x0080 /* x button down */
#define global MOUSEEVENTF_XUP 0x0100 /* x button down */
#define global MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */
#define global MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */
#define global MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */
/* Brush Styles */
#define global BS_SOLID 0
#define global BS_NULL 1
#define global BS_HOLLOW BS_NULL
#define global BS_HATCHED 2
#define global BS_PATTERN 3
#define global BS_INDEXED 4
#define global BS_DIBPATTERN 5
#define global BS_DIBPATTERNPT 6
#define global BS_PATTERN8X8 7
#define global BS_DIBPATTERN8X8 8
#define global BS_MONOPATTERN 9
/* Hatch Styles */
#define global HS_HORIZONTAL 0 /* ----- */
#define global HS_VERTICAL 1 /* ||||| */
#define global HS_FDIAGONAL 2 /* \\\\\ */
#define global HS_BDIAGONAL 3 /* ///// */
#define global HS_CROSS 4 /* +++++ */
#define global HS_DIAGCROSS 5 /* xxxxx */
//ステータスバーに送るメッセージ #define global SB_***
//メッセージ コード 意味
#define global SB_GETPARTS 0x0406 //パーツの数と座標を取得
#define global SB_GETTEXT 0x0402 //表示されるテキストを取得
#define global SB_SETPARTS 0x0404 //パーツの数と座標を設定
#define global SB_SETTEXT 0x0401 //表示されるテキストを設定
#define global SB_SIMPLE 0x0409 //ステータスバーの表示モードを設定
/*
* Scroll Bar Constants
*/
#define global SB_HORZ 0
#define global SB_VERT 1
#define global SB_CTL 2
#define global SB_BOTH 3
//リストビューに送るメッセージ #define global LVM_***
//メッセージ コード 意味
#define global LVM_DELETEALLITEMS 0x1009 //すべてのアイテムを削除
#define global LVM_DELETECOLUMN 0x101C //カラムを削除
#define global LVM_DELETEITEM 0x1008 //アイテムを削除
#define global LVM_FINDITEM 0x100D //アイテムを検索
#define global LVM_GETBKCOLOR 0x1000 //背景色を取得
#define global LVM_GETHEADER 0x101F //ヘッダコントロールを取得
#define global LVM_GETITEM 0x1005 //アイテムの属性を取得
#define global LVM_GETITEMCOUNT 0x1004 //アイテムの数を取得
#define global LVM_GETNEXTITEM 0x100C //指定した属性を持つアイテムを取得
#define global LVM_GETTEXTCOLOR 0x1023 //テキストの文字色を取得
#define global LVM_GETTEXTBKCOLOR 0x1025 //テキストの背景色を取得
#define global LVM_INSERTCOLUMN 0x101B //新しいカラム(列)を挿入
#define global LVM_INSERTITEM 0x1007 //新しいアイテムを挿入
#define global LVM_SETBKCOLOR 0x1001 //背景色の設定
#define global LVM_SETIMAGELIST 0x1003 //イメージリストの割り当て
#define global LVM_SETITEM 0x1006 //アイテム・サブアイテムの属性を設定・変更
#define global LVM_SETTEXTBKCOLOR 0x1026 //テキストの背景色を設定
#define global LVM_SETTEXTCOLOR 0x1024 //テキストの文字色を設定
#define global LVS_ICON 0x0000 //「大きいアイコン表示」のリストビューを作成します。
#define global LVS_REPORT 0x0001 //「詳細表示」のリストビューを作成します。
#define global LVS_SMALLICON 0x0002 //「小さいアイコン表示」のリストビューを作成します。
#define global LVS_LIST 0x0003 //「一覧表示」のリストビューを作成します。
#define global LVS_SINGLESEL 0x0004 //一度に1つのアイテムしか選択できないようにします。(デフォルトでは複数選択可能。)
#define global LVS_SHOWSELALWAYS 0x0008 //コントロールがフォーカスを持っていない状態でも、アイテム選択状態が表示されるようにします。
#define global LVS_SORTASCENDING 0x0010 //アイテムはテキストをもとに昇順でソートされます。
#define global LVS_SORTDESCENDING 0x0020 //アイテムはテキストをもとに降順でソートされます。
#define global LVS_SHAREIMAGELISTS 0x0040 //コントロールを削除する際に、イメージリストを自動的に破棄しないようにします。このスタイルは、複数のコントロールから同じイメージリストを使用する場合に指定します。
#define global LVS_NOLABELWRAP 0x0080 //「大きいアイコン表示」のときに、アイテムのテキストを1行で表示されるようにします。(デフォルトでは複数行で表示されることがあります。)
#define global LVS_AUTOARRANGE 0x0100 //「大きいアイコン表示」および「小さいアイコン表示」のときに、アイコンが自動的に整列した状態になるようにします。
#define global LVS_EDITLABELS 0x0200 //アイテムのテキストを編集できるようにします。このスタイルを指定する場合、親ウィンドウは LVN_ENDLABELEDIT 通知メッセージを処理する必要があります。
#define global LVS_OWNERDATA 0x1000 //version 4.70 以降: 仮想リストビューであることを指定します。
#define global LVS_NOSCROLL 0x2000 //スクロールできないようにします。すべてのアイテムがクライアント領域内になければなりません。
#define global LVS_ALIGNTOP 0x0000 //「大きいアイコン表示」および「小さいアイコン表示」のときに、アイテムがリストビューの上端に並べられるようにします。(デフォルト)
#define global LVS_ALIGNLEFT 0x0800 //「大きいアイコン表示」および「小さいアイコン表示」のときに、アイテムがリストビューの左側に並べられるようにします。
#define global LVS_OWNERDRAWFIXED 0x0400 //「詳細表示」のときに、オーナーウィンドウがアイテムを描画できるようにします。
#define global LVS_NOCOLUMNHEADER 0x4000 //「詳細表示」のときに、カラムのヘッダを表示しないようにします。(デフォルトでは表示されます。)
#define global LVS_NOSORTHEADER 0x8000 //カラムのヘッダがボタンのように動作しないようにします。カラムのヘッダをクリックしたときにソートなどの処理を行なわない場合はこのスタイルを指定します。
//リストビューの拡張スタイル
//※ここで示したリストビューの拡張スタイルは LVM_SETEXTENDEDLISTVIEWSTYLE メッセージ
//および LVM_GETEXTENDEDLISTVIEWSTYLE メッセージによって設定および取得をする必要があります
//CreateWindowEx 関数や SetWindowLong / GetWindowLong 関数で設定・取得することはできませんので注意してください。
#define global LVM_SETEXTENDEDLISTVIEWSTYLE 0x1036 //sendmsg hlist,LVM_GETEXTENDEDLISTVIEWSTYLE,0 変更する拡リス,拡張リストスタイル
#define global LVM_GETEXTENDEDLISTVIEWSTYLE 0x1037 //sendmsg hlist,LVM_GETEXTENDEDLISTVIEWSTYLE,0,0
#define global LVS_EX_GRIDLINES 0x00000001 // version 4.70 以降: 「詳細表示」のリストビューで罫線を表示します。
#define global LVS_EX_SUBITEMIMAGES 0x00000002 // version 4.70 以降: 「詳細表示」のリストビューでイメージがサブアイテムに表示されるようにします。
#define global LVS_EX_CHECKBOXES 0x00000004 // version 4.70 以降: アイテムにチェックボックスをつけます。
#define global LVS_EX_TRACKSELECT 0x00000008 // version 4.70 以降: マウスカーソルがアイテム上で一定時間停止したときにそのアイテムが選択状態になるようにします。すべてのタイプのリストビューで有効です。
#define global LVS_EX_HEADERDRAGDROP 0x00000010 // version 4.70 以降: 「詳細表示」のリストビューでヘッダをドラッグアンドドロップすることによってカラムの順序を入れ替えることができるようにします。
#define global LVS_EX_FULLROWSELECT 0x00000020 // version 4.70 以降: 「詳細表示」のリストビューで、アイテム選択時に列全体を強調表示します。
#define global LVS_EX_ONECLICKACTIVATE 0x00000040 // version 4.70 以降: ユーザーがアイテムをクリックしたときに親ウィンドウに LVN_ITEMACTIVATE 通知メッセージが送られるようにします。また、カーソルがアイテム上に来たときに、アイテムが選択されていなくても強調表示されるようになります。
#define global LVS_EX_TWOCLICKACTIVATE 0x00000080 // version 4.70 以降: ユーザーがアイテムをダブルクリックしたときに親ウィンドウに LVN_ITEMACTIVATE 通知メッセージが送られるようにします。また、カーソルがアイテム上に来たときに、アイテムが選択されていなくても強調表示されるようになります。
#define global LVS_EX_FLATSB 0x00000100 // version 4.71 以降: フラットスクロールバーを使用します。
#define global LVS_EX_REGIONAL 0x00000200 // version 4.71 以降: 「大きいアイコン表示」のリストビューで、アイテムのアイコンとテキストのみを含むリージョンを作成して、ウィンドウリージョンに設定する。
#define global LVS_EX_INFOTIP 0x00000400 // version 4.71 以降: 「大きいアイコン表示」のリストビューで、ツールヒップが表示されるときに親ウィンドウに LVN_GETINFOTIP 通知メッセージを送ります。
#define global LVS_EX_UNDERLINEHOT 0x00000800 // version 4.71 以降: #define global LVS_EX_ONECLICKACTIVATE または #define global LVS_EX_TWOCLICKACTIVATE が設定されている場合に、カーソルがアイテム上に来たときにアイテムのテキストに下線を引くようにします。
#define global LVS_EX_UNDERLINECOLD 0x00001000 // version 4.71 以降: #define global LVS_EX_ONECLICKACTIVATE または #define global LVS_EX_TWOCLICKACTIVATE が設定されている場合に、アイテムのテキストに下線を引くようにします。
#define global LVS_EX_MULTIWORKAREAS 0x00002000 // version 4.71 以降: リストビューが #define global LVS_AUTOARRANGE スタイルを持つときに、1つ以上の作業領域が定義されるまで自動整列しないようにします。
//ツリービューに送るメッセージ #define global TVM_***
//メッセージ コード 意味
#define global TVM_DELETEITEM 0x1101 //アイテムを削除
#define global TVM_EXPAND 0x1102 //アイテムを開く・閉じる
#define global TVM_GETBKCOLOR 0x111F //背景色を取得
#define global TVM_GETCOUNT 0x1105 //アイテム数の取得
#define global TVM_GETITEM 0x110C //アイテムの属性を取得
#define global TVM_GETNEXTITEM 0x110A //指定されたアイテムを取得
#define global TVM_GETTEXTCOLOR 0x1120 //文字色を取得
#define global TVM_GETVISIBLECOUNT 0x1110 //表示可能なアイテム数の取得
#define global TVM_INSERTITEM 0x1100 //新しいアイテムを追加
#define global TVM_SETIMAGELIST 0x1109 //イメージリストを設定
#define global TVM_SETITEM 0x110D //アイテムの属性を設定
#define global TVM_SORTCHILDREN 0x1113 //子アイテムのソート
//タブコントロールに送るメッセージ #define global TCM_***
//メッセージ コード 意味
#define global TCM_ADJUSTRECT 0x1328 //ウィンドウ領域と表示領域を相互に変換
#define global TCM_DELETEALLITEMS 0x1309 //すべてのタブを削除
#define global TCM_DELETEITEM 0x1308 //タブを削除
#define global TCM_GETCURSEL 0x130B //選択されているタブインデックスを取得
#define global TCM_GETITEM 0x1305 //タブの情報を取得
#define global TCM_GETITEMCOUNT 0x1304 //タブの数を取得
#define global TCM_INSERTITEM 0x1307 //新しいタブを挿入
#define global TCM_SETCURSEL 0x130C //タブを選択
#define global TCM_SETIMAGELIST 0x1303 //イメージリストを設定
#define global TCM_SETITEM 0x1306 //タブの属性を設定
//アップダウンコントロールに送るメッセージ #define global UDM_***
//メッセージ コード 意味
#define global UDM_GETPOS 0x0468 //現在のポジションを取得
#define global UDM_GETPOS32 0x0472 //現在のポジション(32ビット値)を取得
#define global UDM_SETBUDDY 0x0469 //バディウィンドウを設定
#define global UDM_SETPOS 0x0467 //現在のポジション(32ビット値)を設定
#define global UDM_SETPOS32 0x0471 //現在のポジションを設定
#define global UDM_SETRANGE 0x0465 //ポジションの範囲を設定
#define global UDM_SETRANGE32 0x046F //ポジションの範囲(32ビット値)を設定
//ツールバーに送るメッセージ #define global TB_***
//メッセージ コード 意味
#define global TB_ADDBITMAP 0x0413 //ボタンイメージのリストにビットマップイメージを追加
#define global TB_ADDBUTTONS 0x0414 //新しいボタンを追加
#define global TB_ADDSTRING 0x041C //文字列のリストに新しい文字列を追加
#define global TB_AUTOSIZE 0x0421 //ツールバーサイズを調整
#define global TB_BUTTONSTRUCTSIZE 0x041E //TBBUTTON構造体のサイズを設定
#define global TB_CHECKBUTTON 0x0402 //ボタンを押された状態または押されていない状態に設定
#define global TB_COMMANDTOINDEX 0x0419 //コマンド ID からボタンインデックスを取得
#define global TB_DELETEBUTTON 0x0416 //ボタンを削除
#define global TB_ENABLEBUTTON 0x0401 //ボタンの選択可・不可を設定
#define global TB_GETSTATE 0x0412 //ボタンの状態を取得
#define global TB_HIDEBUTTON 0x0404 //ボタンの表示・非表示を設定
#define global TB_INSERTBUTTON 0x0415 //新しいボタンを挿入
#define global TB_LOADIMAGES 0x0432 //システム定義のボタンイメージをロード
#define global TB_SETBITMAPSIZE 0x0420 //ビットマップのサイズを設定
#define global TB_SETDISABLEDIMAGELIST 0x0436 //無効状態にあるボタンのイメージリストを設定
#define global TB_SETHOTIMAGELIST 0x0434 //ホット状態にあるボタンのイメージリストを設定
#define global TB_SETIMAGELIST 0x0430 //デフォルト状態にあるボタンのイメージリストを設定
#define global TB_SETINDENT 0x042F //インデントを設定
#define global TB_SETSTATE 0x0411 //ボタンの状態を設定
#define global TBSTYLE_TOOLTIPS 0x0100
#define global TBSTYLE_WRAPABLE 0x0200 //ボタンが複数行になる
#define global TBSTYLE_ALTDRAG 0x0400
#define global TBSTYLE_FLAT 0x0800 //フラットツールバーにする
#define global TBSTYLE_LIST 0x1000
#define global TBSTYLE_CUSTOMERASE 0x2000
#define global TBSTYLE_REGISTERDROP 0x4000
#define global TBSTYLE_TRANSPARENT 0x8000 //ツールバーの背景を透明に
#define global TBSTYLE_EX_DRAWDDARROWS 0x00000001
#define global TBSTYLE_BUTTON 0x0000 // obsolete; use BTNS_BUTTON instead
#define global TBSTYLE_SEP 0x0001 // obsolete; use BTNS_SEP instead
#define global TBSTYLE_CHECK 0x0002 // obsolete; use BTNS_CHECK instead
#define global TBSTYLE_GROUP 0x0004 // obsolete; use BTNS_GROUP instead
#define global TBSTYLE_CHECKGROUP (TBSTYLE_GROUP | TBSTYLE_CHECK) // obsolete; use BTNS_CHECKGROUP instead
#define global TBSTYLE_DROPDOWN 0x0008 // obsolete; use BTNS_DROPDOWN instead
#define global TBSTYLE_AUTOSIZE 0x0010 // obsolete; use BTNS_AUTOSIZE instead
#define global TBSTYLE_NOPREFIX 0x0020 // obsolete; use BTNS_NOPREFIX instead
//ツールバーTBBUTTON構造体
//fsState
#define global TBSTATE_CHECKED 0x01 //クリックされている状態
#define global TBSTATE_ELLIPSES 0x40 //省略
#define global TBSTATE_ENABLED 0x04 //ユーザー入力を受けつける状態
#define global TBSTATE_HIDDEN 0x08 //ボタンが見えない
#define global TBSTATE_INDETERMINATE 0x10 //ボタン灰色表示
#define global CMB_MASKED 0x02 //ボタンがマークされる
#define global TBSTATE_PRESSED 0x02 //ボタンが押された状態
#define global TBSTATE_WRAP 0x20 //ライングブレーク
//fsStyle
#define global BTNS_BUTTON TBSTYLE_BUTTON // 標準的なボタン
#define global BTNS_SEP TBSTYLE_SEP // 区切り線
#define global BTNS_CHECK TBSTYLE_CHECK // 1度ボタンをおすとそのまま押された状態 トグル
#define global BTNS_GROUP TBSTYLE_GROUP // CHECK と組み合わせて 他のボタンがおされるまで
#define global BTNS_CHECKGROUP TBSTYLE_CHECKGROUP // Check と Group が組み合わさった
#define global BTNS_DROPDOWN TBSTYLE_DROPDOWN // ドロップダウンスタイル
#define global BTNS_AUTOSIZE TBSTYLE_AUTOSIZE // 標準的なボタンのわくを割り当てずにテキストに
#define global BTNS_NOPREFIX TBSTYLE_NOPREFIX // ボタンテキストがアクセラレ^多
#define global BTNS_SHOWTEXT 0x0040 // ボタンテキスト
#define global BTNS_WHOLEDROPDOWN 0x0080 // ドロップダウンアロー
#define global GWL_WNDPROC -4
#define global GWL_HINSTANCE -6
#define global GWL_HWNDPARENT -8
#define global GWL_STYLE -16
#define global GWL_EXSTYLE -20
#define global GWL_USERDATA -21
#define global GWL_ID -12
/*
* Window Styles
*/
#define global WS_OVERLAPPED 0x00000000 //オーバーラップウィンドウを作成します。オーバーラップウィンドウはタイトルと枠を持ちます。
#define global WS_POPUP 0x80000000 //ポップアップウィンドウを作成します。このスタイルは、WS_CHILD スタイルと一緒には使えません。
#define global WS_CHILD 0x40000000 //子ウィンドウを作成します。このスタイルは、WS_POPUP スタイルと一緒には使えません。
#define global WS_MINIMIZE 0x20000000 //ウィンドウを最小化の状態で作成します。
#define global WS_VISIBLE 0x10000000 //可視状態のウィンドウを作成します。
#define global WS_DISABLED 0x08000000 //無効 (使用不能) なウィンドウを作成します。無効なウィンドウは、有効にするまで、ユーザーからの入力を受け取りません。
#define global WS_CLIPSIBLINGS 0x04000000 // 兄弟関係にある子ウィンドウをクリップします。
#define global WS_CLIPCHILDREN 0x02000000 //親ウィンドウ内部を描画するときに、子ウィンドウが占める領域を除外します。このスタイルは、親ウィンドウを作成するときに使います。
#define global WS_MAXIMIZE 0x01000000 //
#define global WS_CAPTION 0x00C00000 //タイトルバーを持つウィンドウを作成します。(WS_BORDER | WS_DLGFRAME)
#define global WS_BORDER 0x00800000 //境界線を持つウィンドウを作成します。
#define global WS_DLGFRAME 0x00400000 //ダイアログボックスで一般的に使われるスタイルの境界を持つウィンドウを作成します。
#define global WS_VSCROLL 0x00200000 //垂直スクロールバーを持つウィンドウを作成します。
#define global WS_HSCROLL 0x00100000 //水平スクロールバーを持つウィンドウを作成します。
#define global WS_SYSMENU 0x00080000 //タイトルバー上にウィンドウメニューボックスを持つウィンドウを作成します。
#define global WS_THICKFRAME 0x00040000 //サイズ変更境界を持つウィンドウを作成します。
#define global WS_GROUP 0x00020000 //コントロールグループの最初のコントロールを指定します。このコントロールから、次に WS_GROUP スタイルのコントロールがくるまでに定義されたコントロールが、コントロールグループになります。
#define global WS_TABSTOP 0x00010000 //ユーザーが[Tab]キーを押すと入力フォーカスを受け取るコントロールを指定します。[Tab]キーを押すと、WS_TABSTOP スタイルを持つ次のコントロールに、入力フォーカスが移動します。
#define global WS_MINIMIZEBOX 0x00020000 //最小化ボタンを持つウィンドウを作成します。 WS_SYSMENU スタイルも指定する必要があります。拡張スタイルに WS_EX_CONTEXTHELP を指定することはできません。
#define global WS_MAXIMIZEBOX 0x00010000 //最大化ボタンを持つウィンドウを作成します。 WS_SYSMENU スタイルも指定する必要があります。拡張スタイルに WS_EX_CONTEXTHELP を指定することはできません。
#define global WS_EX_DLGMODALFRAME 0x00000001 //
#define global WS_EX_NOPARENTNOTIFY 0x00000004 //
#define global WS_EX_TOPMOST 0x00000008 //
#define global WS_EX_ACCEPTFILES 0x00000010 //
#define global WS_EX_TRANSPARENT 0x00000020 //
#define global WS_EX_MDICHILD 0x00000040 //
#define global WS_EX_TOOLWINDOW 0x00000080 //
#define global WS_EX_WINDOWEDGE 0x00000100 //
#define global WS_EX_CLIENTEDGE 0x00000200 //
#define global WS_EX_CONTEXTHELP 0x00000400 //
#define global WS_EX_RIGHT 0x00001000 //
#define global WS_EX_LEFT 0x00000000 //
#define global WS_EX_RTLREADING 0x00002000 //
#define global WS_EX_LTRREADING 0x00000000 //
#define global WS_EX_LEFTSCROLLBAR 0x00004000 //
#define global WS_EX_RIGHTSCROLLBAR 0x00000000 //
#define global WS_EX_CONTROLPARENT 0x00010000 //
#define global WS_EX_STATICEDGE 0x00020000 //
#define global WS_EX_APPWINDOW 0x00040000 //
/* Stock Logical Objects */
#define global WHITE_BRUSH 0 //ホワイトブラシ
#define global LTGRAY_BRUSH 1 //
#define global GRAY_BRUSH 2
#define global DKGRAY_BRUSH 3
#define global BLACK_BRUSH 4
#define global NULL_BRUSH 5
#define global HOLLOW_BRUSH NULL_BRUSH
#define global WHITE_PEN 6
#define global BLACK_PEN 7
#define global NULL_PEN 8
#define global OEM_FIXED_FONT 10
#define global ANSI_FIXED_FONT 11
#define global ANSI_VAR_FONT 12
#define global SYSTEM_FONT 13
#define global DEVICE_DEFAULT_FONT 14
#define global DEFAULT_PALETTE 15
#define global SYSTEM_FIXED_FONT 16
#define global GCL_HBRBACKGROUND -10
// GetSystemMetrics() codes
#define global SM_CXSCREEN 0
#define global SM_CYSCREEN 1
#define global SM_CXVSCROLL 2
#define global SM_CYHSCROLL 3
#define global SM_CYCAPTION 4
#define global SM_CXBORDER 5
#define global SM_CYBORDER 6
#define global SM_CXDLGFRAME 7
#define global SM_CYDLGFRAME 8
#define global SM_CYVTHUMB 9
#define global SM_CXHTHUMB 10
#define global SM_CXICON 11
#define global SM_CYICON 12
#define global SM_CXCURSOR 13
#define global SM_CYCURSOR 14
#define global SM_CYMENU 15
#define global SM_CXFULLSCREEN 16
#define global SM_CYFULLSCREEN 17
#define global SM_CYKANJIWINDOW 18
#define global SM_MOUSEPRESENT 19
#define global SM_CYVSCROLL 20
#define global SM_CXHSCROLL 21
#define global SM_DEBUG 22
#define global SM_SWAPBUTTON 23
#define global SM_RESERVED 124
#define global SM_CXMIN 28
#define global SM_CYMIN 29
#define global SM_CXSIZE 30
#define global SM_CYSIZE 31
#define global SM_CXFRAME 32
#define global SM_CYFRAME 33
#define global SM_CXSIZEFRAME SM_CXFRAME
#define global SM_CYSIZEFRAME SM_CYFRAME
#define global SM_CXMINTRACK 34
#define global SM_CYMINTRACK 35
#define global SM_CXDOUBLECLK 36
#define global SM_CYDOUBLECLK 37
#define global SM_CXICONSPACING 38
#define global SM_CYICONSPACING 39
#define global SM_MENUDROPALIGNMENT 40
#define global SM_PENWINDOWS 41
#define global SM_DBCSENABLED 42
#define global SM_CMOUSEBUTTONS 43
#define global SM_SECURE 44
#define global SM_CXEDGE 45
#define global SM_CYEDGE 46
#define global SM_CXMINSPACING 47
#define global SM_CYMINSPACING 48
#define global SM_CXSMICON 49
#define global SM_CYSMICON 50
#define global SM_CYSMCAPTION 51
#define global SM_CXSMSIZE 52
#define global SM_CYSMSIZE 53
#define global SM_CXMENUSIZE 54
#define global SM_CYMENUSIZE 55
#define global SM_ARRANGE 56
#define global SM_CXMINIMIZED 57
#define global SM_CYMINIMIZED 58
#define global SM_CXMAXTRACK 59
#define global SM_CYMAXTRACK 60
#define global SM_CXMAXIMIZED 61
#define global SM_CYMAXIMIZED 62
#define global SM_NETWORK 63
#define global SM_CLEANBOOT 67
#define global SM_CXDRAG 68
#define global SM_CYDRAG 69
#define ctype crgb(%1,%2,%3) (%1|(%2<<8)|(%3<<16))
#define global SW_HIDE 1 //ウィンドウを非表示にして、他のウィンドウをアクティブにします。
#define global SW_SHOWNORMAL 2 //ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、ウィンドウの位置とサイズを元に戻します。アプリケーションは、最初にウィンドウを表示させるときにこのフラグを指定するべきです。
#define global SW_SHOWMINIMIZED 3 //ウィンドウをアクティブにして、最小化されたウィンドウとして表示します。
#define global SW_SHOWMAXIMIZED 4 //ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。
#define global SW_SHOWNOACTIVATE 5 //ウィンドウをアクティブにはせずに表示します。
#define global SW_SHOW 6 //ウィンドウをアクティブにして、現在の位置とサイズで表示します。
#define global SW_MINIMIZE 7 //指定されたウィンドウを最小化して、次の Z オーダーにあるトップレベルウィンドウをアクティブにします。
#define global W_SHOWMINNOACTIVE 8 //ウィンドウを最小化されたウィンドウとして表示します。ウィンドウはアクティブ化されません。
#define global SW_SHOWNA 9 //ウィンドウを現在の位置とサイズで表示します。ウィンドウはアクティブ化されません。
#define global SW_RESTORE 10 //ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、ウィンドウの位置とサイズを元に戻します。アプリケーションは、最小化されたウィンドウの位置とサイズを元に戻すときにこのフラグを指定するべきです。
#define global SW_SHOWDEFAULT 11 //アプリケーションを起動したプログラムが CreateProcess 関数にパラメータとして渡した STARTUPINFO 構造体で指定されている SW_ 値に基づいて表示状態が設定されます。
#define global SW_FORCEMINIMIZE 12 //ウィンドウを所有しているスレッドがハングしている状態であっても、ウィンドウを最小化します。他のスレッドからウィンドウを最小化させる場合にのみ、このフラグを使用するべきです。
#define global SPI_GETFORGROUNDLOCKTIMEOUT $2000
#define global SPI_SETFORGROUNDLOCKTIMEOUT $2001
//背景色処理
#define global WM_CTLCOLORMSGBOX 0x0132 //メッセージボックスmsnbox
#define global WM_CTLCOLOREDIT 0x0133 //エディットボックスinput
#define global WM_CTLCOLORLISTBOX 0x0134 //listbox
#define global WM_CTLCOLORBTN 0x0135 //btn?
#define global WM_CTLCOLORDLG 0x0136 //ダイアログ
#define global WM_CTLCOLORSCROLLBAR 0x0137 //スクロールバー
#define global WM_CTLCOLORSTATIC 0x0138 //スタティック
//====== Flat Scrollbar APIs=========================================
#define global WSB_PROP_CYVSCROLL 0x00000001
#define global WSB_PROP_CXHSCROLL 0x00000002
#define global WSB_PROP_CYHSCROLL 0x00000004
#define global WSB_PROP_CXVSCROLL 0x00000008
#define global WSB_PROP_CXHTHUMB 0x00000010
#define global WSB_PROP_CYVTHUMB 0x00000020
#define global WSB_PROP_VBKGCOLOR 0x00000040
#define global WSB_PROP_HBKGCOLOR 0x00000080
#define global WSB_PROP_VSTYLE 0x00000100
#define global WSB_PROP_HSTYLE 0x00000200
#define global WSB_PROP_WINSTYLE 0x00000400
#define global WSB_PROP_PALETTE 0x00000800
#define global WSB_PROP_MASK 0x00000FFF
#define global FSB_FLAT_MODE 2
#define global FSB_ENCARTA_MODE 1
#define global FSB_REGULAR_MODE 0
; SetWindowPos 関数のパラメータ値
/*
* SetWindowPos Flags
*/
#define global SWP_NOSIZE 0x0001
#define global SWP_NOMOVE 0x0002
#define global SWP_NOZORDER 0x0004
#define global SWP_NOREDRAW 0x0008
#define global SWP_NOACTIVATE 0x0010
#define global SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
#define global SWP_SHOWWINDOW 0x0040
#define global SWP_HIDEWINDOW 0x0080
#define global SWP_NOCOPYBITS 0x0100
#define global SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
#define global SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */
#define global SWP_DRAWFRAME SWP_FRAMECHANGED
#define global SWP_NOREPOSITION SWP_NOOWNERZORDER
#define global SWP_DEFERERASE 0x2000
#define global SWP_ASYNCWINDOWPOS 0x4000
//リッチエディットコントロールに送るメッセージ #define global EM_***
//メッセージ コード 意味
#define global EM_CANPASTE 0x0432 //指定されたクリップボード形式のデータを貼り付けることができるかどうかを取得
#define global EM_CANUNDO 0x00C6 //元に戻すことができるかどうかを取得
#define global EM_EXGETSEL 0x0434 //選択されている範囲を取得
#define global EM_EXLIMITTEXT 0x0435 //テキストサイズの上限を設定
#define global EM_EXSETSEL 0x0437 //選択状態にする範囲を設定
#define global EM_FINDTEXT 0x0438 //文字列を検索
#define global EM_GETCHARFORMAT 0x043A //文字書式を取得
#define global EM_GETEVENTMASK 0x043B //イベントマスクを取得
#define global EM_GETMODIFY 0x00B8 //変更フラグ取得
#define global EM_GETOPTIONS 0x044E //オプションを取得
#define global EM_GETPARAFORMAT 0x043D //段落書式を取得
#define global EM_GETSEL 0x00B0 //選択されている範囲を取得
#define global EM_GETSELTEXT 0x043E //選択されているテキストを取得
#define global EM_SETBKGNDCOLOR 0x0443 //背景色を設定
#define global EM_SETCHARFORMAT 0x0444 //文字書式を設定
#define global EM_SETEVENTMASK 0x0445 //イベントマスクを設定
#define global EM_SETMODIFY 0x00B9 //変更フラグを設定
#define global EM_SETOPTIONS 0x044D //オプションを設定
#define global EM_SETPARAFORMAT 0x0447 //段落書式を設定
#define global EM_STREAMIN 0x0449 //内容をストリームに置き換える
#define global EM_STREAMOUT 0x044A //内容をストリームに書き出す
#define global EM_UNDO 0x00C7 //直前の操作を元に戻す
/*
* Edit Control Messages
*/
#define global EM_SETSEL 0x00B1
#define global EM_GETRECT 0x00B2
#define global EM_SETRECT 0x00B3
#define global EM_SETRECTNP 0x00B4
#define global EM_SCROLL 0x00B5
#define global EM_LINESCROLL 0x00B6
#define global EM_SCROLLCARET 0x00B7
#define global EM_GETLINECOUNT 0x00BA
#define global EM_LINEINDEX 0x00BB
#define global EM_SETHANDLE 0x00BC
#define global EM_GETHANDLE 0x00BD
#define global EM_GETTHUMB 0x00BE
#define global EM_LINELENGTH 0x00C1
#define global EM_REPLACESEL 0x00C2
#define global EM_GETLINE 0x00C4
#define global EM_LIMITTEXT 0x00C5
#define global EM_FMTLINES 0x00C8
#define global EM_LINEFROMCHAR 0x00C9 //元に戻す
#define global EM_SETTABSTOPS 0x00CB
#define global EM_SETPASSWORDCHAR 0x00CC
#define global EM_EMPTYUNDOBUFFER 0x00CD
#define global EM_GETFIRSTVISIBLELINE 0x00CE
#define global EM_SETREADONLY 0x00CF //書き込み禁止属性
#define global EM_SETWORDBREAKPROC 0x00D0
#define global EM_GETWORDBREAKPROC 0x00D1
#define global EM_GETPASSWORDCHAR 0x00D2
#define global EM_SETMARGINS 0x00D3
#define global EM_GETMARGINS 0x00D4
#define global EM_SETLIMITTEXT EM_LIMITTEXT
#define global EM_GETLIMITTEXT 0x00D5
#define global EM_POSFROMCHAR 0x00D6
#define global EM_CHARFROMPOS 0x00D7
/*
* Listbox Styles
*/
#define global LBS_NOTIFY 0x0001
#define global LBS_SORT 0x0002
#define global LBS_NOREDRAW 0x0004
#define global LBS_MULTIPLESEL 0x0008
#define global LBS_OWNERDRAWFIXED 0x0010
#define global LBS_OWNERDRAWVARIABLE 0x0020
#define global LBS_HASSTRINGS 0x0040
#define global LBS_USETABSTOPS 0x0080
#define global LBS_NOINTEGRALHEIGHT 0x0100
#define global LBS_MULTICOLUMN 0x0200
#define global LBS_WANTKEYBOARDINPUT 0x0400
#define global LBS_EXTENDEDSEL 0x0800
#define global LBS_DISABLENOSCROLL 0x1000
#define global LBS_NODATA 0x2000
#define global LBS_NOSEL 0x4000
/*
* Listbox messages
*/
#define global LB_ADDSTRING 0x0180
#define global LB_INSERTSTRING 0x0181
#define global LB_DELETESTRING 0x0182
#define global LB_SELITEMRANGEEX 0x0183
#define global LB_RESETCONTENT 0x0184
#define global LB_SETSEL 0x0185 //指定インデックスの選択 TRUE なら選択 インデックス
#define global LB_SETCURSEL 0x0186 //指定行の選択要求
#define global LB_GETSEL 0x0187
#define global LB_GETCURSEL 0x0188
#define global LB_GETTEXT 0x0189
#define global LB_GETTEXTLEN 0x018A
#define global LB_GETCOUNT 0x018B
#define global LB_SELECTSTRING 0x018C
#define global LB_DIR 0x018D
#define global LB_GETTOPINDEX 0x018E
#define global LB_FINDSTRING 0x018F
#define global LB_GETSELCOUNT 0x0190
#define global LB_GETSELITEMS 0x0191
#define global LB_SETTABSTOPS 0x0192
#define global LB_GETHORIZONTALEXTENT 0x0193
#define global LB_SETHORIZONTALEXTENT 0x0194
#define global LB_SETCOLUMNWIDTH 0x0195
#define global LB_ADDFILE 0x0196
#define global LB_SETTOPINDEX 0x0197
#define global LB_GETITEMRECT 0x0198
#define global LB_GETITEMDATA 0x0199
#define global LB_SETITEMDATA 0x019A
#define global LB_SELITEMRANGE 0x019B
#define global LB_SETANCHORINDEX 0x019C
#define global LB_GETANCHORINDEX 0x019D
#define global LB_SETCARETINDEX 0x019E
#define global LB_GETCARETINDEX 0x019F
#define global LB_SETITEMHEIGHT 0x01A0
#define global LB_GETITEMHEIGHT 0x01A1
#define global LB_FINDSTRINGEXACT 0x01A2
#define global LB_SETLOCALE 0x01A5
#define global LB_GETLOCALE 0x01A6
#define global LB_SETCOUNT 0x01A7
#define global LB_INITSTORAGE 0x01A8
#define global LB_ITEMFROMPOINT 0x01A9
#define global LB_MULTIPLEADDSTRING 0x01B1
/*
* Button Control Styles
*/
#define global BS_PUSHBUTTON 0x00000000
#define global BS_DEFPUSHBUTTON 0x00000001
#define global BS_CHECKBOX 0x00000002
#define global BS_AUTOCHECKBOX 0x00000003
#define global BS_RADIOBUTTON 0x00000004
#define global BS_3STATE 0x00000005
#define global BS_AUTO3STATE 0x00000006
#define global BS_GROUPBOX 0x00000007
#define global BS_USERBUTTON 0x00000008
#define global BS_AUTORADIOBUTTON 0x00000009
#define global BS_OWNERDRAW 0x0000000B
#define global BS_LEFTTEXT 0x00000020
#define global BS_TEXT 0x00000000
#define global BS_ICON 0x00000040
#define global BS_BITMAP 0x00000080
#define global BS_LEFT 0x00000100
#define global BS_RIGHT 0x00000200
#define global BS_CENTER 0x00000300
#define global BS_TOP 0x00000400
#define global BS_BOTTOM 0x00000800
#define global BS_VCENTER 0x00000C00
#define global BS_PUSHLIKE 0x00001000
#define global BS_MULTILINE 0x00002000
#define global BS_NOTIFY 0x00004000
#define global BS_FLAT 0x00008000
#define global BS_RIGHTBUTTON BS_LEFTTEXT
#define global BN_CLICKED 0 //ボタンがクリックされた
#define global BN_PAINT 1
#define global BN_HILITE 2
#define global BN_UNHILITE 3
#define global BN_DISABLE 4
#define global BN_DOUBLECLICKED 5
#define global BN_PUSHED BN_HILITE
#define global BN_UNPUSHED BN_UNHILITE
#define global BN_DBLCLK BN_DOUBLECLICKED
#define global BN_SETFOCUS 6
#define global BN_KILLFOCUS 7
/*
* Button Control Messages
*/
#define global BM_GETCHECK 0x00F0
#define global BM_SETCHECK 0x00F1
#define global BM_GETSTATE 0x00F2
#define global BM_SETSTATE 0x00F3 //ボタンをおしたように描画 1=YES 2=No
#define global BM_SETSTYLE 0x00F4
#define global BM_CLICK 0x00F5 //ボタンをプログラムからクリック
#define global BM_GETIMAGE 0x00F6
#define global BM_SETIMAGE 0x00F7
#define global BST_UNCHECKED 0x0000
#define global BST_CHECKED 0x0001
#define global BST_INDETERMINATE 0x0002
#define global BST_PUSHED 0x0004
#define global BST_FOCUS 0x0008
/*
* Combo Box return Values
*/
#define global CB_OKAY 0
#define global CB_ERR (-1)
#define global CB_ERRSPACE (-2)
/*
* Combo Box Notification Codes
*/
#define global CBN_ERRSPACE -1
#define global CBN_SELCHANGE 1
#define global CBN_DBLCLK 2
#define global CBN_SETFOCUS 3
#define global CBN_KILLFOCUS 4
#define global CBN_EDITCHANGE 5
#define global CBN_EDITUPDATE 6
#define global CBN_DROPDOWN 7
#define global CBN_CLOSEUP 8
#define global CBN_SELENDOK 9
#define global CBN_SELENDCANCEL 10
/*
* Combo Box styles
*/
#define global CBS_SIMPLE 0x0001
#define global CBS_DROPDOWN 0x0002
#define global CBS_DROPDOWNLIST 0x0003
#define global CBS_OWNERDRAWFIXED 0x0010
#define global CBS_OWNERDRAWVARIABLE 0x0020
#define global CBS_AUTOHSCROLL 0x0040
#define global CBS_OEMCONVERT 0x0080
#define global CBS_SORT 0x0100
#define global CBS_HASSTRINGS 0x0200
#define global CBS_NOINTEGRALHEIGHT 0x0400
#define global CBS_DISABLENOSCROLL 0x0800
#define global CBS_UPPERCASE 0x2000
#define global CBS_LOWERCASE 0x4000
/*
* Combo Box messages
*/
#define global CB_GETEDITSEL 0x0140
#define global CB_LIMITTEXT 0x0141
#define global CB_SETEDITSEL 0x0142
#define global CB_ADDSTRING 0x0143
#define global CB_DELETESTRING 0x0144
#define global CB_DIR 0x0145
#define global CB_GETCOUNT 0x0146
#define global CB_GETCURSEL 0x0147
#define global CB_GETLBTEXT 0x0148
#define global CB_GETLBTEXTLEN 0x0149
#define global CB_INSERTSTRING 0x014A
#define global CB_RESETCONTENT 0x014B
#define global CB_FINDSTRING 0x014C //指定文字列に前方一致する項目を検索
#define global CB_SELECTSTRING 0x014D //指定文字列に前方一致する項目を選択
#define global CB_SETCURSEL 0x014E //指定列の指定
#define global CB_SHOWDROPDOWN 0x014F
#define global CB_GETITEMDATA 0x0150
#define global CB_SETITEMDATA 0x0151
#define global CB_GETDROPPEDCONTROLRECT 0x0152
#define global CB_SETITEMHEIGHT 0x0153
#define global CB_GETITEMHEIGHT 0x0154
#define global CB_SETEXTENDEDUI 0x0155
#define global CB_GETEXTENDEDUI 0x0156
#define global CB_GETDROPPEDSTATE 0x0157
#define global CB_FINDSTRINGEXACT 0x0158 //指定文字列にマッチする項目を選択 検索開始インデックス 文字列へのポインタ
#define global CB_SETLOCALE 0x0159
#define global CB_GETLOCALE 0x015A
#define global CB_GETTOPINDEX 0x015b
#define global CB_SETTOPINDEX 0x015c
#define global CB_GETHORIZONTALEXTENT 0x015d
#define global CB_SETHORIZONTALEXTENT 0x015e
#define global CB_GETDROPPEDWIDTH 0x015f
#define global CB_SETDROPPEDWIDTH 0x0160
#define global CB_INITSTORAGE 0x0161
#define global CB_MULTIPLEADDSTRING 0x0163
//WM_ACTIVATE パラメータ if (wparam=WA_CLICKACTIVE)|(wparam=WA_ACTIVE){}
#define global WA_INACTIVE 0 //wParam ヒアクティブ
#define global WA_ACTIVE 1 //wParam キーボードによるアクティブ
#define global WA_CLICKACTIVE 2 //wParam マウスによるアクティブ
//非クライアントエリアのウィンドウメッセージ
#define global WM_NCCREATE 0x0081
#define global WM_NCDESTROY 0x0082
#define global WM_NCCALCSIZE 0x0083
#define global WM_NCHITTEST 0x0084
#define global WM_NCPAINT 0x0085
#define global WM_NCACTIVATE 0x0086
#define global WM_GETDLGCODE 0x0087
#define global WM_SYNCPAINT 0x0088
#define global WM_NCMOUSEMOVE 0x00A0
#define global WM_NCLBUTTONDOWN 0x00A1 //左クリックを押した
#define global WM_NCLBUTTONUP 0x00A2 //左クリックを放した
#define global WM_NCLBUTTONDBLCLK 0x00A3 //左ダブルクリック
#define global WM_NCRBUTTONDOWN 0x00A4 //左クリックを押した
#define global WM_NCRBUTTONUP 0x00A5 //左クリックを放した
#define global WM_NCRBUTTONDBLCLK 0x00A6 //右ダブルクリック
#define global WM_NCMBUTTONDOWN 0x00A7
#define global WM_NCMBUTTONUP 0x00A8
#define global WM_NCMBUTTONDBLCLK 0x00A9
#define global WM_NCXBUTTONDOWN 0x00AB
#define global WM_NCXBUTTONUP 0x00AC
#define global WM_NCXBUTTONDBLCLK 0x00AD
#define global SB_BOTTOM //一番下までスクロール
#define global SB_ENDSCROLL //スクロール終了
#define global SB_LINEDOWN //1 行下へスクロール
#define global SB_LINEUP //1 行上へスクロール
#define global SB_PAGEDOWN //1 ページ下へスクロール
#define global SB_PAGEUP //1 ページ上へスクロール
#define global SB_LEFT //左端へスクロール
#define global SB_LINELEFT //左へスクロール
#define global SB_LINERIGHT //右へスクロール
#define global SB_PAGELEFT //1 ページ左へスクロール
#define global SB_PAGERIGHT //1 ページ右へスクロール
#define global SB_RIGHT //右端へスクロール
#define global SB_THUMBPOSITION //絶対位置へスクロール
#define global SB_THUMBTRACK //指定位置へスクロール ボックスをドラッグ
#define global SB_TOP // 一番上までスクロール
/*
* SetWindowsHook() codes
*/
#define global WH_MIN (-1)
#define global WH_MSGFILTER (-1)
#define global WH_JOURNALRECORD 0
#define global WH_JOURNALPLAYBACK 1
#define global WH_KEYBOARD 2
#define global WH_GETMESSAGE 3
#define global WH_CALLWNDPROC 4
#define global WH_CBT 5
#define global WH_SYSMSGFILTER 6
#define global WH_MOUSE 7
#define global WH_HARDWARE 8
#define global WH_DEBUG 9
#define global WH_SHELL 10
#define global WH_FOREGROUNDIDLE 11
#define global WH_CALLWNDPROCRET 12
#define global WH_KEYBOARD_LL 13
#define global WH_MOUSE_LL 14
#define global WH_MINHOOK WH_MIN
#define global ctype LOWORD(%1) (%1 & 0xFFFF) //下位ワード値を取得
#define global ctype HIWORD(%1) ((%1 >> 16 ) & 0xFFFF) //下位ワード値を取得
dir_main_p@ = dir_cur
#define global dir_main dir_main_p@ //exeのあるディレクトリ
#define global ctype objh(%1) objinfo (%1,2)
module_basic.hsp
//特殊API
#uselib "msvcrt"
//ファイルのリネーム
#func rename "rename" str, str
#module "basic"
#deffunc actwin int prm1
;*******************************************************************************
; アクティブウィンドウの制御 (actwin)
;
; 戻り値 : 成功 stat=lvshwnd, 失敗 stat=-1
;
; ・書式 actwin handle
; ・引数 handle (省略時は現在のHSP Window Handle)
; ・タイプ モジュール命令
;
;-- (NOTE) ---------------------------------------------------------------------
;
; (使用例)
; actwin hwnd ;Window ID=2をActiveにする
;*******************************************************************************
handle=prm1
OpenIcon handle
if handle!0 : hsphwnd=handle : else : hsphwnd=hwnd
if hsphwnd==0 : return -1
GetForegroundWindow
fhwnd=stat
GetWindowThreadProcessId fhwnd,varptr(PID)
ThreadId1=stat
GetCurrentThreadId
ThreadId2=stat
AttachThreadInput ThreadId2,ThreadId1,1
SetForegroundWindow hsphwnd
AttachThreadInput ThreadId2,ThreadId1,0
return 0
#defcfunc folderchek str p1
mref ref,65
dirlist s2,"*.*",5
notesel s2
s4=0
repeat notemax
noteget s3,cnt
if s3=p1:s4=1:break
loop
ref=dir_cur+"\\"+p1
return s4
//2重起動防止
#deffunc startchek_start str p1
sdim class,128
GetClassName hwnd,varptr(class),256
s1=p1
FindWindowA varptr(class),varptr(s1)
if stat!0{
sendmsg stat,WM_USER+0x0200
end
}
return
//キー実行つきフラグ
#defcfunc gk int p1
getkey key,p1:if key=1:return 1:else:return 0
return
//テストダイアログ
#deffunc testdialog str p1
getkey key,16:if key=1:return
dialog "[ "+p1+" ] ",," Count : "+testdialog_count+" Cnt : "+cnt@
getkey key,2:if key=1:end
getkey key,17:if key=1:end
testdialog_count+
return
//ポジション制御開始 開始X,開始Y,下へ下がる量
#deffunc posxstart int p1,int p2,int p3
posxint=0
posxdownint=p3
posxx=p1
posxy=p2
return
//ポジション制御を解除
#deffunc posxend
posxint=0
return
//ポジションを一段階下へ
#deffunc posx
pos posxx,posxy+posxint
posxint+=posxdownint //下への移動量
oldposxdownint=posxdownint
return
//横に説明がきの文字を書く
#deffunc posh int p1
s1=0
if p1=0:s1=100:else:s1=p1
pos posxx+s1,posxy+(posxint-oldposxdownint)
return
//一段階ポジションを下げる 下げる量(規定値)
#deffunc posxdown int p1
if p1!0:posxint+=p1:else:posxint+posxdownint
return
//gts 文字列の縦横の長さを取得 p1 0=横 1=縦 の長さ p2=文字列
#defcfunc gts_mod int p1,str p2
if p1>1{return 0}s1=p2:dim s2,2:GetTextExtentPoint32A hdc,varptr(s1),strlen(s1),varptr(s2):return s2(p1)
//テストSTR
#deffunc teststr str p1,int p2,int p3
if hspstat=1{
oldcx=ginfo_cx
oldcy=ginfo_cy
r=ginfo_r
g=ginfo_g
b=ginfo_b
redraw 0
color 255,255,255
if (p2=null)&(p3=null){
boxf ginfo_winx-30-2-gts_mod(0,p1), ginfo_winy-30-2,ginfo_winx-5,ginfo_winy-11
}else{
boxf p2,p3,ginfo_winx-5,ginfo_winy-11
}
color
if (p2=null)&(p3=null){
pos ginfo_winx-30-gts_mod(0,p1),ginfo_winy-30
}else{
pos p2,p3
}
mes p1
redraw 1
color r,g,b
pos oldcx,oldcy
}
return
//テストカウント
#deffunc testcc
if hspstat=1{
oldcx=ginfo_cx
oldcy=ginfo_cy
r=ginfo_r
g=ginfo_g
b=ginfo_b
redraw 0
color 255,255,255
boxf ginfo_winx-30-2,ginfo_winy-30-2,ginfo_winx-5,ginfo_winy-11
color
pos ginfo_winx-30,ginfo_winy-30:mes count_up
redraw 1
count_up+
color r,g,b
pos oldcx,oldcy
}
return
//ファイルがある場合1を返す
#defcfunc fileh str p1
exist p1:if strsize!-1:return 1:else:return 0
//gselをロックしてgsel 0=ロック 1=開放 , 変更するウィンドウID
#deffunc lockgsel int p1, int p2
if ginfo_sel!p2{
if p1=0{
lock_gsel_id=ginfo_intid
gsel p2
}else{
gsel lock_gsel_id
}
}
return
//gselのロック 0=ロック 1=開放
#deffunc locksel int p1
if p1=0{lock_gsel_id=ginfo_intid}else{gsel lock_gsel_id}
return
//p1で指定された文字列にp2の文字列がある場合1を返す
#defcfunc instrx str p1,str p2
s1=p1:if instr(s1,0,p2)!-1:return 1:else:return 0
//********************************************************************
// ini操作関数群3
//
// iniload "読み出すファイル名",共通変数 戻り値 = 文字数
// ファイルが存在しない場合0byteファイルを作成し-1を返します。
// inisave "書き込むファイル名",共通変数 戻り値 = 文字数
// 取得した文字列 = inigetstr("セクション名","項目",共通変数)
// 取得したい項目またはセクションが存在しなかった場合は""を返す
// 取得した数値 = inigetint("セクション名","項目",共通変数)
// 取得したい項目またはセクションが存在しなかった場合は0を返す
// inisetint "セクション名","項目",代入する値,共通変数 戻り値 = 文字数
// inisetstr "セクション名","項目","代入する文字列",共通変数 戻り値 = 文字数
// inidel "セクション名","項目",共通変数 戻り値 = 成功フラグ
//********************************************************************
#deffunc iniload str p1,var p2
exist p1:if strsize=-1{sdim p2,64:return -1}else{p2=str(p2):notesel p2: noteload p1}return strsize
#deffunc inisave str p1,var p2
notesel p2:notesave p1:return strlen(str(p2))
#defcfunc inigetstr str p1, str p2, var p3
cc=0:s3=0:s2="":s4=0:notesel p3:repeat notemax:noteget s1,cc:if "["+p1=strmid(s1,0,1+strlen(p1)){
s6=cc:repeat notemax:cc+:noteget s1,cc:if strmid(s1,0,1)="["{s3=1:break}if p2!""{if strmid(s1,0,strlen(p2))=p2{
getstr s2,s1,strlen(p2):getstr s2,s2,1:s3=1:break}}else{if s1=""{if s4=0{s4=1:s5=cc-1}}else{s4=0}
s2+=s1+"\n"}loop:if s4=1{notesel s2:repeat notemax:notedel s5-s6:loop}}if s3=1{break}cc+:loop
if p2=""{s2=strmid(s2,0,strlen(s2)-2)}return str(s2)
#defcfunc inigetint str p1, str p2, var p3
return int(inigetstr(p1,p2,p3))
#deffunc inidel str p1, str p2, var p3
d6=1:s6=0:cc=0:notesel p3:repeat notemax:noteget s1,cc:if "["+p1 = strmid(s1,0,1+strlen(p1)){
gjcc=cc:if p2=""{repeat notemax-gjcc:notedel cc:noteget s7,cc:if "["=strmid(s7,0,1){d6=1:s6=1:break}
loop}repeat notemax:cc+:noteget s1,cc:if (strmid(s1,0,strlen(p2))=p2)&(d6=0){notedel cc
s6=1:break}loop}if s6=1{break}cc+:loop:return
#deffunc inisetstr str p1, str p2, str p3,var p4
s6=0:cc=0:ju=0:sss=0:add=0:notesel p4:repeat notemax:noteget s1,cc:if "["+p1=strmid(s1,0,1+strlen(p1)){
if cc+1=notemax{p4=p4+"\n"}decc=cc:sss=1:repeat notemax:cc+:noteget s1,cc:getstr gggg,s1,0,'='
if (gggg=p2)&(p2!""){noteadd str(p2)+"="+str(p3),cc+add,1:s6=1:break}if ("["=strmid(s1,0,1))|(notemax=cc){
add=-1:noteget s1,cc-1:if s1!""{noteadd "",cc,0:add=0}if p2!""{noteadd str(p2)+"="+str(p3),cc+add,0}else{
repeat notemax-decc:noteget s1,decc+2:if "["=strmid(s1,0,1){break}notedel decc+1:loop:noteadd p3,decc+1,1}
s6=1:break}loop}if s6=1{break}cc+:loop:if sss=0{cc=0:repeat notemax:noteget s1,cc:if "["=strmid(s1,0,1){ju=1}
loop:if ju=0{noteadd "["+p1+"]",0,1:if p2!""{noteadd ""+p2+"="+p3+"\n",1,1}else{noteadd ""+p3+"\n",1,1}}
if ju=1{p4+="\n\n":noteget s1,notemax-3:if s1!""{p4+="\n"}noteadd "["+p1+"]",notemax-2,1:if p2!""{
noteadd ""+p2+"="+p3+"\n",notemax-1,1}else{noteadd ""+p3+"\n",notemax-1,1}}}return
#deffunc inisetint str p1, str p2, int p3,var p4
inisetstr p1,p2,str(p3),p4:return
#deffunc syscolor2 int p1
GetSysColor p1
gcol=stat
repeat 3
ret.cnt = peek (gcol,cnt)
if ret.cnt>0 : ret.cnt--
loop
color ret.0,ret.1,ret.2
return
#defcfunc htmlcolor int p1, int p2, int p3
return strf("#%02X",p1)+strf("%02X",p2)+strf("%02X",p3)
#defcfunc color16 int p1, int p2, int p3
return int(strf("%02X",p1)+strf("%02X",p2)+strf("%02X",p3))
#global