ソース公開ページ

戻る

開発環境

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
WTL::CMessageFilter
WTL::CIdleHandler

自作クラスを継承
CXTaskTrayImpl
CMainFrameInterface

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から頂きました