2008年10月02日

サンプル

 今日も新タイプ制作をやりました。
 まず昨日書いたCDialogExクラスで背景色を指定してもチェックボックスの背景は変更されない、という問題についてですが、これは結局今までと同じように、OnCtlColor関数内で処理するようにしました。

 次に、今日は設定などをするのに便利そうな「CMFCPropertyGridCtrl」クラスについていろいろ調べてみました。
 このコントロールの使い方、というか設定の仕方?はある程度わかったのですが、肝心のその設定された値の取得方法とか、変更されたかどうかのフラグ取得についてがよくわからないので、このことについて調べてみました。

 MSDN Libraryでこのクラスについて調べてみると、このクラスを派生させて、その中で、CMFCPropertyGridCtrl::OnPropertyChanged、CMFCPropertyGridCtrl::OnSelectCombo、CMFCPropertyGridCtrl::ValidateItemDataあたりを処理しなければいけないような感じだったので、とりあえず実験用のプロジェクトでやってみると、確かにこの辺を使えば処理できそうな感じではあったのですが、派生クラスを作らなければならないのが嫌で、何とか親ウインドウでメッセージを受信して処理できないか調べてみました。

 すると、前述のメンバ関数とは違うタイミングでメッセージが飛んでいることがわかり、それを処理すればうまくできそうな感じでした。
 ちなみに、そのメッセージは「0xc277」でwParamにコントロールIDがlParamにコントロールへのポインタが入っていました。
 とりあえず、今日はここまでで終了し、詳しい処理についてはまた明日にでもやろうと思います。

 次に、これらのコントロールについて調べていると、「サンプルがある」というのを何度も見ていて、自分でもダウンロードしていたつもりでした。
 しかし、それはsp1になる前のもので、サイトをよく見るとsp1用のサンプルが別にありました。(ノ∀`) アチャー

 ということで、早速ダウンロードして見てみると、見事なまでの新しいコントロールについてのサンプルや、新しいクラスについてのサンプルが沢山ありました。
 まだほとんどのサンプルは見ていないのですが、実際にこうやって実物を見てみると、かなりおもしろそうな、また、いろいろな使い道がありそうなものが沢山ありました。
 これを見ると好奇心をかき立てられ、色々やってみたくなってきました。

 VS 2008 sp1を使わない人には文章だけではよくわからないだろうと思い、サンプルを用意してみました。
 といっても、自分で作ったものではなく、今回ダウンロードしたサンプルのものなんですけど。
 http://enrai.matrix.jp/soft/newcontrols.zip ファイルサイズ 1,686,980 バイト
 興味のある方は、上記の場所からダウンロードして試してみて下さい。
 ちなみに、レジストリは使用してないし、設定ファイルもできないので、要らなくなったらそのまま捨てればよいです。
 
 
 
ランキングへ  posted by 遠雷 at 00:53 | コメント(0) | MFC

2008年10月01日

使える機能?

 今日も新タイプ制作をしました。
 昨日書いたMFCリストコントロールのソートについてですが、結局今までと同じやり方でソートさせるようです。
 今まではソートをするとき比較関数を自分で用意し、その関数へのポインタを引数にしていたのですが、それがなくなって昇順/降順を設定するようになっています。

 昨日よく分からないと書いた複数列でのデータの同時並べ替え機能についてですが、これは今までは特定の列をソートさせると、その列だけのデータでアイテムがソートされていましたが、この新しい機能では、指定した列も考慮に入れながら、特定の列のデータを中心に並び替えをする、というものみたいです。

 要するに、今までは2列目をソートさせると、1列目は当然並びがバラバラになっていたのが、ある程度は1列目も考慮する、というようになっています。
 この機能の効果がよく分かるのが、2列目に同じアイテムがあったとき、1列目のデータでソートされるときだと思います。
 今回実験してみて、この機能はなかなかいいと思ったので、とりあえず仮想リストビューは使わずにこのままやってみたいと思います。

 次に、「CDialogEx」クラスについて調べてみました。
 このクラスは今までのものに、背景色と背景画像を簡単に設定できるようにしただけみたいですが、今まででも比較的簡単にできていたことなので、大したことはないだろうと思いながらも一応実験してみました。

 で、やってみた結果ですが、背景色を指定して設定してみると、ある程度はキチンとなるのですが、チェックボックスの背景はきちんと変更されず、文字が真っ黒になりました。
 ラジオボタンやスタティックテキストなどはきちんと変更されるのですが、これじゃ結局今までと同じようにチェックボックスの背景を変更しなければいけないので、まったく役に立ちません。
 恐らくこれはバグなのだとは思いますが、本当に中途半端なものが多いような気がします。

 というわけで、いろいろやりながらも少しずつは進んでいるかも?という感じです。
ランキングへ  posted by 遠雷 at 00:38 | コメント(0) | MFC