メモ帳もどき (C++ with ATL) 説明 ---- ATL クラスライブラリを基本として作成したメモ帳もどき。 ATL を使用した (COM に関係のない) GUI アプリケーションの基本型のつもり。 修正履歴 -------- ver0.00 2003.03.03 0.01(β) 新規作成 todo ---- - ファイルのドラッグアンドドロップ - コマンドラインのファイル指定 以下は実装することはないと思う。 - 折り返し - フォント/色指定 - 検索/置換 - 印刷 - ヘルプ 技術的なこと ------------ ATL で標準コントロールを含む既存ウィンドウを C++ のクラスにラップして使用する 際、もっとも簡単なやり方は VC++ サンプルに含まれる ATLCONTROLS.H を使すること である。 ATLCONTROLS.H には CStatic や CEdit など基本的な標準コントロールのラップクラ スが用意され、ほとんどそのまま使用できる。 派生させていくつかメソッドを追加するだけなら、以下のようにすればよい。 #include "ATLCONTROLS.H" class CExEdit : public CEdit { ... }; CEdit は CWindow の派生クラスとして定義されている。 ただし、CWindow をベースにした単純なラップクラスはメッセージを処理できないと いう問題がある。 メッセージを直に処理したい場合、 class CExEdit : public CWindowImpl { public: DECLARE_WND_SUPERCLASS(NULL, "EDIT") ... public: BEGIN_MSG_MAP(CExEdit) END_MSG_MAP() }; などとして CWindowImpl の派生クラスにする。 標準コントロールの使用では自力でメッセージを処理する必要性は低いため、ほとん どの場合、ATLCONTROLS.H で事足りる。