半年ぐらい前にVisual Studio 2008にFeature PackというMFCのコンポーネントが追加されまして(VS2008 SP1に含まれています)、 Office等で使われているリボンコントロール類がわりと簡単に使えるようになったわけなんですが、ようやく最近になって実際に触ってみる機会がありましたので、ちょこっとご報告。
VS2008 SP1からは、Officeのようなインターフェースが手軽に使えるだけでなく、Office2003のツールバーやメニュー等のカスタマイズ機能(もちろん環境の保存・復元機能も)、ドッキングウィンドウ機能などが標準で付いているのが凄いと思いました。
EDGE2を作ろうとした頃、タブブラウザで有名なsleipnir 1.66を使っていまして(今は2を使っています)、 sleipnirはわりとカスタマイズ性を売りにしているところがあって、どうやってカスタマイズ機能などを実現しているのかちょこっと調べてみた事があるのですが、どうやらBCGSoftというメーカーが出しているBCGControlBarという商用ライブラリを使っていたようなんですね。
それで初めてBCGControlBarというライブラリの存在を知って、当時買おうかちょっと迷ったんです。こうした機能を独自で実装するとなると、なかなか手間が掛かりまして、面倒くさいんですよね。当時の私はまだ学生だったという事もありまして(バイトもあまりやっていなかったので)結局自前でなんとかしたわけなんですが、それがVS2008 SP1からは新規作成した所で全部備わっちゃってるわけですから凄いものです。
で、どうもこのBCGControlBarの一部の機能がVS2008 SP1にそのまま入ってるみたいなんです。ただ、一部と書いたとおり、すべての機能が入ってるわけではなくて、商品のBCGControlBar Pro版には、更にグリッドコントロールや高機能エディターなどが付いているようです。
(VS2008 SP1との機能比較が個人的には欲しかったです^^;)
そうしてVS2008 SP1持っているけどそれでは足りない人向けにBCGSuiteという商品があるっぽいです。
(Pro版からSP1を引いた程度の内容になっている感じです。)
ちなみに製品の紹介はこちらが参考になるかと。
http://www.bcgsoft.com/featuretour/bcgcontrolbar-tour.htm
(グリッドコントロール標準で欲しいですわorz)
VS2008 SP1、実際に使ってみると、結構クラス設計とか綺麗に作られている印象を受けました。
BCGSoftさんやり手ですね。
ただ、デフォルトでカスタマイズ機能の保存先がレジストリになっている点が、一部のユーザーに反感を買いそうな感じではあります(^^;
一応頑張ればiniファイルとかバイナリに保存できるようになっているようですが、最初っからレジストリに当たり前のように書くのはちょっと勘弁して欲しいですね。
他にもツールバーの登録がツールバーリソース経由しかなさそう(?)なのが個人的にはちょっと痛いところ。
VS2008のツールバーエディタで16色のツールバー画像を作成し、その後で自動作成されたbmpをフルカラー画像に置き換えるか(置き換えるとVS2008上で開けなくなりますが)、もしくは別リソースとしてフルカラー画像リソースを用意してCMFCToolBar::LoadBitmap(だったっけ)しないといけません。
どちらにしてもあとで手を入れるときに二度手間な時があってあんまり好きじゃありません。
そういえば、マニュアルには載ってませんが、ソースを追っていたら、CMFCToolBar::LoadBitmapだったかは、 PNG形式のリソース画像も読めるっぽいです(試していませんが)。
そこはマニュアルに書いておくべきかと(^^;
なので、16色のツールバーリソース+PNGフルカラー画像リソースという組み合わせが現状ではベストかと思われます。
(フルカラーBITMAPリソースはEXEがメタボになるのであんまりリソースとして持ちたくないんですよね)
何かSP1MFCの詳しい書籍が出てくれると良いんですが。
インプレスさん、Visual Studio 2008 SP1 MFCパワフルテクニック大全集とか出してくれませんかね?
需要ないかな・・・
《参考資料》
CodeZineさんの記事→http://codezine.jp/article/detail/2516
BCGSoft→http://www.bcgsoft.com/
MSDNのチュートリアルとか→http://msdn.microsoft.com/ja-jp/library/bb982451.aspx