開発環境
Visual Studio 2008 Professional C++ (Standard以上なら可。Express Editionはかなり苦労します)
ATL 8.0以上
WTL 8.0以上(入手はこちら)
VS2008より次のATLファイルがATLServerという名前で別配布となりました。
CAtlHttpClient(入手はこちら)
ソースファイル
1.6.0.0
(2009/06/15)
1.5.1.1
(2009/06/04)
フォルダ構成
開発フォルダ構成は次のようになっています
Dev
+--WTL80 ..................
ダウンロードしたWTL8.0をここへ解凍してください
|
+--include
+--ATLServer ........ ダウンロードしたATLServerをここへ解凍してください
| +--include
+--GaitameMon
.... 本体はここへ解凍してください
プログラム概要
CMainFream--CPopupMon
CMainFreamではUIを担当しています。
CPopupMonはレート表示とインターネットのアクセスを行っています。
インターネットのアクセスについては別スレッドによって情報取得しています。
インターネットアクセスは、ATL::CAtlHttpClientを使用していますが、当時はWin32のWinHttpをAPIで直に利用すれば良かったかなと思います。
概要図
クラス図を次に示します。重要なクラスのみ記述しました(Class.cdgはUMLMemoで作成しました)
クラス
CAboutDlg | メニューの「バージョン」を選択したときに表示されるウィンドウの実装 | ATL::CDialogImplを継承 |
CBasicAuth | CAtlHttpClientから呼び出され、プロキシ認証を実装する 使用法方法は、ATL::CAtlHttpClientを参照してください |
|
CBitmapHyperLink | バージョン情報のリンク部分のコントロールを実装 | CBitmapHyperLinkImplを継承 |
CColorSettingButton | 設定ダイアログの[動作設定]-[色]のボタンをサブクラス化した実装 クリックすると、色設定ダイアログを表示するようにするために必要に迫られて作りました |
ATL::CWindowImplを継承 |
CGaitamemonThreadManeger | メイン実装 WTLのウィザードで生成された物そのままです。 |
|
CMainFreame | タスクトレイのウィンドウです。CGaitamemonThreadManegerから作成され、常駐します。 |
WTLの部品を継承WTL::CFrameWindowImpl 自作クラスを継承 |
CMainFreameInterface | CMainFreamのメンバーを下位のオブジェクトから参照出来るようにしたインタフェースです 実装はCMainFreameです |
|
CPopupMon | 中核となる実装です。 このウィンドウでレート表示を行っています。 |
WTL::CFrameWindowImplを継承 |
CSetting_CLock_Page | 設定画面の世界時計の実装です | WTL::CPropertyPageImplを継承 |
CSetting_Limiter_Page | 設定画面のリミッターの実装です | WTL::CPropertyPageImplを継承 |
CSetting_Window_Page | 設定画面の動作設定の実装です | WTL::CPropertyPageImplを継承 |
CSettingSheet | 設定画面の実装です | WTL::CPropertySheetImplを継承 |
CXCrypto | プロキシパスワードを暗号化保存するためのクラス |
|
CXCurrency | COMの通貨型を拡張するために作ったクラス | ATL::CComCurrency |
CXEditNumeric | エディとコントロールをサブクラス化して数値と小数点のみ入力可能とした実装 | |
CXMutexLock | Mutexを操作するためのクラス |
|
CXRateInfoItem | 一つの組み合わせのレート情報を保持しているデータクラス | |
CXRateInfoItems | CXRateInfoItemのコレクション |
テンプレート
CXTaskTrayImpl | タスクトレイ操作 |
CBitmapHyperLinkImpl | バージョン情報のリンク部分のコントロールを実装したテンプレート CodeProjectから頂きました |