2008年09月06日

サンプル?

 今日は昨日の続きで、MFCの新しいクラスについていろいろ調べてみました。

 まず、いろいろやっていて気付いたのですが、プロジェクト設定で作ったものは、今までなら設定した通りの雛形が作られていたのですが、今回のものから雛形というより、サンプルのようなものができるようになっています。
 よく見ると、各ソースの一番上にそれらしいことが書いてありました。
 具体的に書くと、ペインの中に複数のコントロールが挿入されていたり、そのコントロール内にダミー用のアイテムがいろいろ挿入されていたり、ペイン内にツールバーが設置されたりしています。

 その他に、アイテム追加のためのメンバ関数が作られていたり、ペイン作成のためのメンバ関数があったりしています。
 以前にもここに書いたことがあるのですが、ソフト作りは機能を追加するのは比較的簡単ですが、既存の機能を削除するのは結構面倒だったりするのです。

 ということで、本格的に作るようになったら、最初の設定は必要最低限の機能だけを付けるようにして、後は独自に追加していくほうが良さそうです。
 大体、今まではきちんと最初の設定では雛形のみできて、サンプルはサイト上やインストール先のフォルダにあったりしたのに、何故今回はこんな感じにしたんでしょうか?
 やはり、いきなり大幅に変更をしたため、混乱しないようにこういう形にしたんですかね?
 どっちにしても、作る前に必要ない部分を削っていく作業から始めなければいけない、っていうのはどうかと思いますけどね。

 それはともかく、今日調べてみたことは、新クラスはどれくらいあるか数えてみると、クラスだけで155個(多分)ありました。
 といっても、「CMFCVisualManagerOffice2003」とか「CMFCVisualManagerOffice2007」みたいに、細かく派生したものもあるので、もう少し少ないかもしれませんが、それにしても多いですよね?

 ここで気になったのが、「〜Manager」とか「〜Info」とか新しいタイプが結構あることです。
 なんかちょっと見てみたけど、この辺が少しややこしそうな感じでした。

 あと、今日はMDI(Photoshopみたいに複数のドキュメントを開くもの)を試してみたのですが、今までのものと大きく違う点は、各ドキュメントをタブで管理できて、そのタブを色んな形にできることです。
 例えば、タブをD&Dで並べ替えたり、タブをグループ分けしてビューを区切ったりできるのです。

 これはすごくいい機能だと思います。
 今までなら、メニューなどから並べるようにしたりしなければいけなかったし、当然この機能は自分でコードを書かなければいけなかったのに、この機能を使えばユーザーが簡単にマウスで好きなようにできるのです。
 これで、各ドキュメント間の操作が楽になりそうです。

 ということで、まだまだ調べなければいけない事が多いのですが、少しづつでも自分のものにして、きちんと使えるようになりたいと思います。
ランキングへ  posted by 遠雷 at 00:53 | コメント(0) | MFC

2008年09月05日

CMFC〜

 今日はVisual Studio 2008 SP1の新しい機能についていろいろ調べてみました。

 まず、最初のプロジェクト設定画面で、前回は追加できるものはすべて追加していましたが、それだとゴチャゴチャし過ぎて訳がわからなくなったので、今回は一つずつ適用して調べてみることにしました。
 その前に、何を適用すればどの機能が追加されるのかよくわからないので、とりあえず何となくでやってみました。

 ちなみに、最初のプロジェクト設定画面では具体的なクラス名とかで表示されてなくて、「パーソナル化されたメニュー動作」とか「ナビゲーションペイン」とか「ドッキング可能な出力ペイン」とか専用語?で表示されているので、実際に見てみないとどれがどれを指しているのかわからないのです。

 ということで、まずは使うことが多そうなエクスプローラーのようなペインを追加してみました。
 これは設定画面では「ナビゲーション ペイン」となっていて、具体的なクラス名は「CMFCShellTreeCtrl」で、プロジェクト内のコードを見てみると、「MainFrm.cpp」ないでCreteして「CMFCOutlookBar」にAddしてあるだけでした。
 こう書くとわからない人は何が何だか解らないと思いますが、要するに、特別難しいことを書かなくても簡単にこの機能を使うことができる、ということです。

 クラス名を見てみると、「Ctrl」とあるので簡単に流用できそうです。
 デフォルトのままだとOutlookのように、カレンダーコントロールと同じペインを共用するようになっていて、この機能はあまり使いそうにないので、無駄なものを省くということで、流用して使い勝手のいいようにしたいです。

 この他に使えそうなものとして、「切り離し、自動非表示、サイズ調整」可能なドッキングペインです。
 これは、普段は横に隠れていて、必要なときに呼び出して(スライドさせて)使い終わると勝手に隠れる、というもので、フローティングさせたり、隠れる位置を右や下など好きなところに変更できるようになっているものです。

 結局、これらの位置や大きさなどの状態を記憶させるのにレジストリを使っていました。
 これらの情報を取得するための新しい関数もできていました。
 ここら辺をうまくやりくりすれば、レジストリは使わなくてもすみそうですが、まだ全然試してないので何ともいえません。

 今回いろいろ調べてみて、新しいクラスはほとんど「CMFC〜」という形になっていて、その後に続く文字も機能をあらわすそのまんまの言葉になっているので、比較的わかりやすい、というか単純なネーミングでした。
 マイクロソフトのサイトでこれらの新クラスを見てみると、いろいろ便利そうなクラスが沢山あったので、これからのプログラミングが楽しくなりそうです。
ランキングへ  posted by 遠雷 at 00:51 | コメント(0) | MFC