ページ

2008年8月29日金曜日

WTLでスライダーバーを使いたい

今日はWTLにチャレンジ
スライダーバーを使おうとしてMSG_WM_HSCROLLマクロを埋め込んだところ、なにやら未解決のメソッドが出てきた。
そこでよくatlcrack.hを見ると以下のコメントが、

// Note about message maps with cracked handlers:
// For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
// For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
// but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.

BEGIN_MSG_MAPをBEGIN_MSG_MAP_EXに置き換えたら見事ビルドが通りました。
使い方は以下みたいな感じ。

class CMainDlg : public CDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>,
        public CMessageFilter, public CIdleHandler
{
private:
    CTrackBarCtrl    track_bar;    // トラックバー

…中略…

    BEGIN_MSG_MAP_EX(CMainDlg)
        MSG_WM_HSCROLL(OnHScroll)
        MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
        MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
    END_MSG_MAP()

    void OnHScroll(int nCode, short nPos, HWND hWnd)
    {
        CTrackBarCtrl trackbar = hWnd;
        ATLTRACE("%d\n", trackbar.GetPos());
    }

    LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    {


…中略…


        // コントロール設定
        track_bar = GetDlgItem(IDC_SLIDER_MAIN);

        // スライダーバーの初期化
        track_bar.SetRange(0, 32767);    // 値の範囲(32767が最大値)
        track_bar.SetTicFreq(3276);        // 解像度
        track_bar.SetPageSize(3276);    // PageUp/PageDown での移動量
        track_bar.SetLineSize(328);        // カーソルキーでの移動量

        return TRUE;
    }


…中略…




}


2008年8月23日土曜日

Visual C++ 2008 Express EditionでWTLを使おう!

このページでは主に以下の手順についての概要をまとめてあります。
ただ正直細かい点はあまり覚えてないので省略してたりもします。(^^;


    1. Visual C++ 2008 Express Editionをインストール
    2. Microsoft Platform SDKをインストール
    3. WTL8.0をインストール






1. Visual C++ 2008 Express Editionをインストール



特に大変なことはありません。ウイザードに沿ってインストールを進めます。
ちなみに私は以前マイクロソフトのサイトからダウンロードしていたものを使用しました。

2. Microsoft Platform SDKをインストール





Windows Server 2003 SP1 Platform SDK ISO Installを使ってインストールします。
インストール後に、VC++2008の[ツール]->[オプション]からオプション設定ダイアログを開き、include・libのパスを設定します。
[プロジェクトおよびソリューション]->[VC++ ディレクトリ]->[ディレクトリを表示するプロジェクト]->[インクルード ファイル]

3. WTL8.0をインストール



SOURCEFORGE.NETより最新版を入手します。


(1) 自己解凍書庫を展開したものを任意のフォルダに移動します。


(2) 移動後に、VC++2008の[ツール]->[オプション]からオプション設定ダイアログを開き、includeのパスを設定します。
[プロジェクトおよびソリューション]->[VC++ ディレクトリ]->[ディレクトリを表示するプロジェクト]->[インクルード ファイル]


(3) セットアップスクリプトをVC++2008EE用に編集します。

- setup80x.jsをコピーしてsetup90x.jsというファイルを作成します。
- setup90x.jsをテキストファイルで開いて、「8.0」という文字列を「9.0」に置換します。
- setup90x.jsを保存して閉じます。
- setup90x.jsを実行し、セットアップが完了します。



2008年8月9日土曜日

EeePC 901-X購入

ここ最近ずっと気になっていたミニノートPCのEeePC 901-Xをついに購入してしまいました。
ヨドバシで3台入荷しましたというセールストークにまんまと引っ掛かった感じですかね。(^^ゞ