Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
メモ帳もどき (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 で事足りる。