特にテーマは無く雑記かな。 最近は自分用メモが増えてきましたけど。
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


HSP2.61の小技その6
2006年08月22日 (火) | 編集 |
最近は忙しくて仕方が無かったのですが、やっと一区切りした所です。

今回は、ツールバーのボタンアイコンにシステム定義ビットマップを使用する方法です。暫くぶりで書くネタが無かったのですが、どうも実現できないなぁと困っているのを小耳に挟んだので書いてみました。

ちょっとメッセージをツールバーに送るだけですけど。

という訳で、今回はツールバーのボタンアイコンにシステム定義ビットマップを使用してみます。

ツールバーを使用するにはメッセージを処理しなくてはならないので、hsgetmsg.dll等が必要です。
ツールバーを使用するのに便利な「toolbar.as」が「HSP拡張プラグイン hsgetmsg Ver1.41」に添付されていますが、これをそのまま使っていると、システム定義ビットマップを使用する事が難しいです。
そこで「HSPの裏技??」の「ツールバーを作成してみる ACT-2」でやってる事を組み合わせつつ実現しようと思います。

実際に実現しているスクリプトは次の通り。(06/09/01:set_toolbtnsysの引数n1を省略可能にしました)
#include "llmod.as"
#include "toolbar.as"

; set_toolbtnsys n1
; n1 : ツールバーのハンドル(省略可能)
; 実行後のstatにはシステム定義のボタンのビットマップのインデックスが代入されます
#module
#define HINST_COMMCTRL $FFFFFFFF
#define IDB_STD_SMALL_COLOR $00000000
#define TB_ADDBITMAP $00000413
#deffunc set_toolbtnsys int
    mref p1,0 ; toolbar handle
    mref stt, 64
    hTool=hwndTB@toolbar
    if p1:hTool=p1
    tbadd=HINST_COMMCTRL,IDB_STD_SMALL_COLOR
    pm=hTool,TB_ADDBITMAP,0,0
    getptr pm.3,tbadd
    sendmsg pm
    stt=stat
    return
#global

    screen 0,320,120,0

    set_toolbar 1|$100,0,0,0,0
    set_toolbtnsys:idxStd=stat

    add_toolbtn "",idxStd+0,0,0:set_tooltip "切り取り",0
    add_toolbtn "",idxStd+1,1,0:set_tooltip "コピー",1
    add_toolbtn "",idxStd+2,2,0:set_tooltip "貼り付け",2
    add_toolbtn "",idxStd+3,3,0:set_tooltip "アンドゥ",3
    add_toolbtn "",idxStd+4,4,0:set_tooltip "リドゥ",4

    stop
あらかじめ set_toolbar で第2引数を 0 にして実行し、ツールバーを作成しておきます。その上で、set_toolbtnsys を実行して下さい。set_toolbtnsys の戻り値(stat)には、システム定義のボタンのビットマップのインデックスが代入されるようになっています。
set_toolbtnsysのn1は省略可能です。省略した場合は、前回設定したツールバーが指定されます。
このスクリプトに書かれている、#module~#globalを用いれば、簡単に実現できるのではないかと思います。

ちょくとのページ
ツールバーを作成してみる ACT-2
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。