2008年09月08日

プロパティクラス

今日も、最近やっている新クラスについて調べてみました。

 今回試してみたのは「CMFCPropertyGridCtrl」で、これは、クラス名にも入っているように、色んなプロパティを設定できるようになっているコントロールで、左の列に設定名が入り、右の列に色んな設定ができるコントロールが入ります。
 設定ができるコントロールとは、エディットコントロールやコンボボックス、スピンコントロール、ファイル選択ダイアログを表示するためのボタン、同様に色設定ダイアログ、フォント設定ダイアログを表示させるボタンなどを入れることができるようになっています。
 Visual Studioを使ったことがある人ならわかると思いますが、あのプロパティを設定するコントロールを実装できるようになっています。

 このコントロールを、自分のソフトにどう使うか考えてみたのですが、今のところはあまりいい案が浮かんできませんでした。
 各種設定をするようにしても、ちょっとこれだけでは間に合わない感じなので、やはり、きちんと設定用のダイアログを作った方がいいのかな?なんて思いました。

 今回このコントロールについて調べていてちょっと気になったのが、最初の各項目を設定する場所で、項目を設定する「CMFCPropertyGridProperty」クラスをnew(メモリ領域を取得する)して使っているのですが、どこにもdelete(メモリ領域を解放)しているところがないので、メモリリークしそうな気がするのです。
 まぁ、当然ちゃんと解放するようにはなっているのでしょうが、コードの中にnewがあるのにdeleteが無いのが、何かちょっと違和感があるというか気持ち悪いのです。
 でも、このコントロールはいろいろと便利に使えそうな感じなので、何とか使い道を考えて使っていけたら、と思います。

 最近は新クラスについて調べてばかりで、既存のソフトについては全く何もしてないのですが、この新クラスの中にいいものがあれば、それを取り入れていければと思っているので、もうしばらくお待ち下さい。
 といってもVS2008で作ると、98・meでは使えなくなるので、既存のソフトでも、ごく一部にしか適用できないのですが、場合によっては、新たに作り直すかもしれません。
ランキングへ  posted by 遠雷 at 00:27 | コメント(0) | MFC

2008年09月07日

FDDへのアクセス

 今日も、最近ずっとやっている新クラスについていろいろ調べてみました。

 昨日も書いたように新クラスは数が多いので、どれから調べればよいか悩むところですが、今日はメイン部分にあたる、「CWinAppEx」について調べてみました。
 新しく追加されたメンバ関数を見てみると、主に各種マネージャクラスの初期化やレジストリへのアクセスが多いような気がします。
 今までは、Profileとして設定したり取得したりしていたので、Profileもとを変更すればレジストリではなく、独自の設定ファイルを使うことができていたのですが、このクラスでは使うものがレジストリ限定になっているような感じなので、変更するのは無理そうです。
 まぁ、要するにこれらの新しいメンバ関数を使わず、今まで通りのやり方でいけば、手間は掛かりそうですが、レジストリは使わなくても良さそうです。

 次に、エクスプローラーのようなものを組み込むことができる「CMFCShellTreeCtrl」ですが、よく調べてみると「CMFCShellListCtrl」と連動させることができるようなことが書いてあったので、早速試してみました。
 まず、左のペインにツリー形式の「CMFCShellTreeCtrl」を、右にリスト形式の「CMFCShellListCtrl」を配置し、これら二つをメンバ関数で関連付けさせて、左のツリーでフォルダなどを選択すると、何もしなくても右のリストへ選択したフォルダ内のフォルダやファイルなどが表示されました。

 これはエクスプローラーのようなものを簡単に実装できるので良さそうなのですが、ちょっと気になるところがあって、それは、マイコンピュータ以下を最初に開こうとすると、フロッピーへアクセスするので、更新されるまで時間がかかるし、あの独特のアクセス音がするのです。(最近のPCにはFDDが実装されてないものが多いのですが・・・)
 以前自分で実装したときは、フロッピーへはアクセスしないようにしていたのですが、この場合は内部的に処理されるので、手が出せそうにないのです。

 ということで、ツリー表示の方は、個人的にはあまり使わないかも?と思いました。
 でも、何か他に回避する方法があったり、別の使い道があれば使うかもしれませんが・・・。
 リスト表示の方は比較的使い道がありそうなので、うまく利用できれば、と思っています。

 ということで、数が多すぎてなかなか進みませんが、いろいろ調べていくうちに、この機能をあのソフトのあの部分に使えばおもしろいかも?とか、この機能を使えばこんなソフトができるかも?とかいろいろ考えながらやっているので、結構楽しかったりします。
ランキングへ  posted by 遠雷 at 00:42 | コメント(0) | MFC