調べましたが「ドロップダウンボタン」というようですね。
こんな感じで作ってみましたが、どうでしょうか。
(dupptrって初めて使うので一寸不安な部分はありますが…)
//参考:
// http://chokuto.ifdef.jp/advanced/shortcutmenu.html
// http://chokuto.ifdef.jp/urawaza/message/WM_NOTIFY.html
// "BS_SPLITBUTTON"と"BCN_DROPDOWN"でググった結果も参考に
#include "user32.as"
#const p_opt 0x80|0x100|0x2	//TPM_NONOTIFY | TPM_RETURNCMD | TPM_RIGHTBUTTON
button gosub "Default",*def
b_id=stat
b_h=objinfo(b_id,2)	//ボタンのハンドル
GetWindowLong b_h,-16
SetWindowLong b_h,-16,stat | 0xC	//0xC=BS_SPLITBUTTON ドロップダウンボタンにする
oncmd gosub *notify,0x4E	//0x4E=WM_NOTIFY
//ポップアップメニューの作成
CreatePopupMenu
p_h=stat	//ポップアップメニューのハンドル
AppendMenu p_h,0,1,"1番目"
AppendMenu p_h,0,2,"2番目"
AppendMenu p_h,0,3,"3番目"
onexit goto *exit	//終了時にポップアップメニューを削除する必要あり
stop
*def
	dialog "デフォルトの動作です"
	return
*notify
	dupptr nmhdr,lparam,12
	if (nmhdr(0)=b_h)&(nmhdr(2)=-1248) {	//-1248=BCN_DROPDOWN
		TrackPopupMenuEx p_h,p_opt,ginfo_mx,ginfo_my,hwnd,0	//ポップアップメニューの表示
		if stat!=0 {
			pm_id=stat	//メニュー項目のID
			switch pm_id
				case 1
					dialog "1番目が選ばれました"
					swbreak
				case 2
					dialog "2番目が選ばれました"
					swbreak
				case 3
					dialog "3番目が選ばれました"
					swbreak
			swend
		}
	}
	return
*exit
	//終了時処理
	DestroyMenu p_h
	end