ヘッダーファイルの翻訳もDirectXあたり無縁すぎて挫折したが、Visual Studioなんてどうせ遊びじゃ手が出ないし、サンプルの検証に使う程度で約200日の使用期限も終わりそう
あまり評判がよろしくないリボンだけど、全然悪くないと思う
不人気だからなのか、とにかくリボン関係は情報が少なくて、特に具体的な日本語情報となるとほぼ皆無で
![](https://pen-jr.org/blog/wp/wp-content/uploads/cocoon-resources/blog-card-cache/9f3a5efd0a0840dd3054e2025fc5c26f.png)
Windows の UI・ウィンドウ - Web/DB プログラミング徹底解説
JavaScript, PHP, Apache, IIS, MySQL, SQL Server による Web 開発、及び C/C++ 言語による Windows 開発について入門編から詳細事項まで徹底解説しています。
こんなところが唯一らしい
D言語でリボンを何とかするためにはCOM関係のヘッダーファイルとUIRibbon.h
とかいろいろな翻訳も必要になるけど、それはそれで
まずXAMLとかいうMicrosoftのマークアップ言語
<?xml version='1.0' encoding='utf-8'?> <Application xmlns="http://schemas.microsoft.com/windows/2009/Ribbon"> <Application.Commands> <Command Name="cmdFileMenu" /> <Command Name="cmdTab1" LabelTitle="Home" /> <Command Name="cmdQat" /> <Command Name="cmdExit"> <Command.LabelTitle>Exit Button</Command.LabelTitle> <Command.LargeImages> <Image>image/x.bmp</Image> </Command.LargeImages> </Command> <Command Name="cmdNew" LabelTitle="New"> <Command.LargeImages> <Image>image/new.bmp</Image> </Command.LargeImages> </Command> </Application.Commands> <Application.Views> <Ribbon> <Ribbon.ApplicationMenu> <ApplicationMenu CommandName="cmdFileMenu"> <MenuGroup Class="MajorItems"> <Button CommandName="cmdNew" /> </MenuGroup> <MenuGroup Class="MajorItems"> <Button CommandName="cmdExit" /> </MenuGroup> </ApplicationMenu> </Ribbon.ApplicationMenu> <Ribbon.Tabs> <Tab CommandName="cmdTab1"> </Tab> </Ribbon.Tabs> <Ribbon.QuickAccessToolbar> <QuickAccessToolbar CommandName="cmdQat" /> </Ribbon.QuickAccessToolbar> </Ribbon> </Application.Views> </Application>
半自前のコードを書いてhoge.xml
で保存
コマンドプロンプトで
UICC.exe hoge.xml hoge.bml /res:hoge.rc /header:hoge.h
などとやると、バイナリファイル(.bml
)、リソースファイル(.rc
)、ヘッダーファイル(.h
)が出来る
.bml
は、同時に出力されたリソースファイルに
APPLICATION_RIBBON UIFILE ".\\xxxx\\hoge.bml"
などと読み込まれる様だから、このリソースファイルをコンパイルするか、元のリソースファイルにインクルードしてコンパイルして、リンクすればOK
ヘッダーファイルは
#define cmdFileMenu 2 #define cmdTab1 3 #define cmdTab1_LabelTitle_RESID 60001 #define cmdQat 4 #define cmdExit 5 #define cmdExit_LabelTitle_RESID 60002 #define cmdExit_LargeImages_RESID 60003 #define cmdNew 6 #define cmdNew_LabelTitle_RESID 60004 #define cmdNew_LargeImages_RESID 60005
こんなのを作ってくれるから、D言語に変換、importしてそれぞれのコマンドを処理すればいい
それなりのコードを書いてやれば
なんとかなる
適当なmake
を書いてやれば、「D言語だから」という類の問題は今のところない様子、ただVisual Studioなんかを使えば、いろんなテンプレートの中から選んだりとか簡単になるのだろうけど
なにせ英語がミミズ故の苦労は尽きないけど、元からある普通のToolbarをD言語で実装するより問題が少なく簡単かもしれない
コメント