2014年11月12日水曜日

mfcの描画機能について備忘録

mfcの描画機能ついて
  • ドキュメント・ビュー構造化
  • オーナードロー機能
    • 自由度の高い描画が可能。ほぼ、自由に表現できる。ただ、ボタンの影や、クリック時の強調処理等、全てを自分で記載する必要がある。
    • OnPaintを使わずに、OnDrawItemで描画処理を記載する。
      • ※mfcではDrawItemをオーバーロードすると利用可能。
    • 参考ページ http://www.kumei.ne.jp/c_lang/sdk/sdk_41.htm
  • カスタムドロー機能
    • オーナードローよりかは自動描画処理に任せつつ、コントロールをカスタマイズ表示できる。カスタムドローするタイミングを自分で決めることが出来る。ただ、それでも結構めんどくさいみたい。
    • 参考ページ http://www.kumei.ne.jp/c_lang/sdk3/sdk_261.htm

2014年11月5日水曜日

shared_ptrについて

shared_ptrを利用して、配列のポインタを自動解放することが出来なかった。
環境はVisualStudio2008。
C++11からは開放関数にstd::default_deleteを指定すると、自動開放可能!
2,008を早く2013にしたいけど、インストーラの関係から難しい。。。

代替案として、
boostの機能を利用すると、shared_ptrで配列も同時解放が可能。
例: boost::shared_ptr<int[]> testData;
配列の領域を一気に取得したい場合はコンストラクタを使用するようにしないと上手くいかないので注意。
例: boost::shared_ptr<int[]> testData(new int[5]);

他に、C++の型推論機能として、autoというのは実装されていることを知ったが、C++11からの機能だった。。。ここでも、2008の壁がある。。。
型推論を使うと、コードを記載する量が減るので将来的に使っていきたい。

make_sharedを使用すると、boost::shared_ptrの書き換えが可能。何のためにあるのか、あんまり未だよくわからないので、分かったら追記します。