リボンフレームワーク?XAML?とにかくD言語で頑張る

D言語

ヘッダーファイルの翻訳もDirectXあたり無縁すぎて挫折したが、Visual Studioなんてどうせ遊びじゃ手が出ないし、サンプルの検証に使う程度で約200日の使用期限も終わりそう

 

あまり評判がよろしくないリボンだけど、全然悪くないと思う

不人気だからなのか、とにかくリボン関係は情報が少なくて、特に具体的な日本語情報となるとほぼ皆無で

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してそれぞれのコマンドを処理すればいい

 

それなりのコードを書いてやれば

26771-300x242

26812-300x243

なんとかなる

 

適当なmakeを書いてやれば、「D言語だから」という類の問題は今のところない様子、ただVisual Studioなんかを使えば、いろんなテンプレートの中から選んだりとか簡単になるのだろうけど

なにせ英語がミミズ故の苦労は尽きないけど、元からある普通のToolbarをD言語で実装するより問題が少なく簡単かもしれない

コメント

タイトルとURLをコピーしました