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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1107
ツオノツールバーの縦表示1解決


ツオノ

リンク

2012/11/7(Wed) 20:59:14|NO.50533

ツールバーを目的の形にしようと試行錯誤しているのですが上手くいきません。

目標の形とは

 1.ボタンを縦一列に、最適なサイズにする。
 2.テキストは表示しない
 3.ボタンの上にマウスが置かれた際にツールチップのポップアップ
 4.ツールバーの横幅をボタンのサイズと合わせる

であり、1から3までは達成できたのですが。

 4の 『ツールバーの横幅をボタンのサイズと合わせる』の部分で失敗していまいます。

 MoveWindow 等の関数を使用しても、恐らくWM_SIZING 等のメッセージで、サイズがロックされているためか、ボタンの総数等に影響を受けて
 しまい、目標の形とはかなり違った体をなしています。
 
 どなたか解決策をご存じありますでしょうか?

#include "comctl32.as" #include "user32.as" icx=8,4 /*ICC_BAR_CLASSES*/ InitCommonControlsEx varptr(icx) #const BTTTOTAL 10 // オブジェクトの作成 winobj "ToolbarWindow32","",0,0x50001180 /*WS_CHILD | WS_VISIBLE | CCS_VERT | TBSTYLE_LIST | TBSTYLE_TOOLTIPS*/ htb = objinfo_hwnd(stat) sendmsg htb,0x041E /*TB_BUTTONSTRUCTSIZE*/ ,20 tba = -1,0 sendmsg htb,0x0413 /*TB_ADDBITMAP*/,0,varptr(tba) sendmsg htb,0x0454 /*TB_SETEXTENDEDSTYLE*/,,0x0008 /*TBSTYLE_EX_MIXEDBUTTONS*/ repeat BTTTOTAL tx.cnt = "test"+cnt tbb(5*cnt) = cnt,cnt,0x24/*TBSTATE_WRAP|TBSTATE_ENABLED | (BTNS_BUTTON<<16)*/,0,varptr(tx.cnt) loop sendmsg htb,0x0414 /*TB_ADDBUTTONS*/,BTTTOTAL,varptr(tbb) dialog "この状態で保ちたいが少しでもサイズに触れると" MoveWindow htb,0,0,ginfo_winx,ginfo_winy,1 dialog "こうなってしまう"



この記事に返信する


ツオノ

リンク

2012/11/8(Thu) 14:53:13|NO.50541

自己解決したのでスクリプトをあげておきます。


#include "comctl32.as" #include "user32.as" #const TBBTNSIZE 24 #const BTTTOTAL 10 icx=8,4 /*ICC_BAR_CLASSES*/ InitCommonControlsEx varptr(icx) // オブジェクトの作成 #const wndstyle 0x50001344 /*(WS_CHILD|WS_VISIBLE) | (TBSTYLE_LIST|TBSTYLE_TOOLTIPS|TBSTYLE_WRAPABLE|CCS_NORESIZE|CCS_NODIVIDER)*/ winobj "ToolbarWindow32","",0,wndstyle,TBBTNSIZE,ginfo_winy htb = objinfo_hwnd(stat) sendmsg htb,0x041E /*TB_BUTTONSTRUCTSIZE*/ ,20 // 構造体サイズを設定 tba = -1,0 sendmsg htb,0x0413 /*TB_ADDBITMAP*/,0,varptr(tba) // ボタンに表示されるアイコンをスタンダードの物にする。 sendmsg htb,0x0454 /*TB_SETEXTENDEDSTYLE*/,,0x0008 /*TBSTYLE_EX_MIXEDBUTTONS*/ // テキストをツールチップに表示するようにする。 repeat BTTTOTAL work.cnt="item"+cnt tbb(5*cnt) = cnt,cnt,0x4/*TBSTATE_ENABLED | (BTNS_BUTTON<<16)*/,0,varptr(work.cnt) loop sendmsg htb,0x0414 /*TB_ADDBUTTONS*/,BTTTOTAL,varptr(tbb) // ボタンを追加する gsel 0,1

有難うございました。



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