- 1 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
- Microsoft Foundation Classライブラリ専用スレです。
前スレ ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/
- 740 名前:732 mailto:sage [2008/11/30(日) 10:13:43 ]
- >>736-737
こういう文句を言う連中は、MFCはおろかC++の基本的な仕様(派生クラスと 基本クラスのコンストラクタ/デストラクタが呼び出される順序や、仮想 関数など)さえロクに理解していないんだろうナァ。 方針なんて関係ない。強いて言えばデザインパターンってやつか? コンストラクタでデフォルト値を代入してメンバ変数の初期化忘れを防ぐ とか、デストラクタでメモリやハンドルの解放忘れを防ぐというのは、 基本中の基本。 インスタンスの消滅で確実にウィンドウを破棄し、なおかつ派生クラス のOnDestroy()やPostNcDestroy()も呼び出されるようにしたければ、MFC 内部の実装に関係なく、派生クラスのオブジェクトが消滅するタイミング でDestroyWindow()を呼び出せばいいだけ。 すなわち、自分が作るCDialog派生クラスで、デストラクタ関数を定義し、 m_hWndが有効ならDestroyWindow()を呼び出してやればいい。 class CMyDialog : public CDialog { virtual ~CMyDialog(); }; CMyDialog::~CMyDialog() { if(m_hWnd!=NULL) DestroyWindow(); } ただそれだけのことだ。
- 741 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:14:42 ]
- >>738
俺とそいつは別人だ ちなみに「よばれてなくね?」は俺 >>739 警告の必要なくね?
- 742 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:18:33 ]
- >>740
でもヘルプでだってどういうときに DestroyWindowを呼ばなきゃいけないのか書いてないわけだし 当然MFCの中身の都合なんてこっちはしったこっちゃないわけで もし、自分でこういうもんを作るとしたら解放はフレームワークのほうで自動でやってほしいかな?
- 743 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 11:15:41 ]
- >>740のコードがまずいというのもわかりにくいしな
- 744 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 15:54:00 ]
- 何この流れ
どうせお互いまったく譲り合わないんだから、これ以上書いても無駄だよ
- 745 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 18:51:38 ]
- Win7ってペイントとかワードパッドにリボン採用してるよな
今後作るソフトはリボンで作った方が惹きやすいのだろうか・・・2008SP1は持ってるが
|

|