sample_ribbon_native.hsp

sample\ribbon\sample_ribbon_native.hsp » Plain Format

;============================================================
;  Windows Ribbon Framework サンプル
;
;  事前準備:
;    1. ribbon.xml を uicc.exe でコンパイルして ribbon.bml を生成
;       > uicc.exe ribbon.xml ribbon.bml /header:ribbon.h /res:ribbon.rc
;    2. ribbon.bml, ribbon.rc, ribbon.h を同じフォルダに配置
;    3. アイコン BMP を res/ フォルダに配置
;
;  uicc.exe は Windows SDK に含まれています:
;    C:\Program Files (x86)\Windows Kits\10\bin\<version>\x86\uicc.exe
;============================================================

	#include "iron_ribbon_native.hsp"

	screen 0, 1024, 600
	title "Ribbon Framework Demo"

	; リボン初期化
	ribbon_native_init
	if stat != 0 {
		mes "Ribbon init failed: " + stat
		stop
	}

	; BML ロード (.rc + .h も同じフォルダに必要)
	ribbon_native_load_bml dir_cur + "\\ribbon.bml"
	if stat != 0 {
		mes "Ribbon load failed: " + stat
		stop
	}

	h = ribbon_native_height()

	; イベントモード (oncmd で受信)
	; メッセージ ID は 0x80C8 (WM_APP + 200) を使用
	ribbon_native_set_event_mode 1, 0x80C8

	; リボンの下にメッセージエリア
	pos 10, h + 10
	mes "Ribbon loaded! Height = " + h + "px"
	mes ""
	mes "Click buttons to see events."
	mes "Command IDs: New=101, Open=102, Save=103"
	mes "             Cut=104, Copy=105, Paste=106"
	mes "             Bold=201, Italic=202, Underline=203"
	mes ""

	oncmd gosub *on_ribbon, 0x80C8
	stop

*on_ribbon
	cmd_id = wparam
	cmd_verb = lparam

	pos 10, h + 180
	; verb: 0=Execute, 1=Preview, 2=CancelPreview
	if cmd_verb == 0 {
		mes "Execute: CMD=" + cmd_id + "              "
	}
	if cmd_verb == 1 {
		mes "Preview: CMD=" + cmd_id + "              "
	}

	; Exit コマンド
	if cmd_id == 999 {
		ribbon_native_destroy
		end
	}
	return