MFC   VC++   Visual Studio   Visual Studio   プログラミング

ビューのツールバー/ステータスバー

 ビューにツールバーとステータスバーを作成し、ツールバーボタンにカーソルを合わせた時、ステータスバーに説明を表示させる方法。

 WindowProcをオーバーライドし、そこに表示する処理を書く。
LRESULT CXXXView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    if(message == WM_SETMESSAGESTRING)
    {
        CString str;
        if(str.LoadString(wParam))        // 「wParam」にツールバーボタンのコマンドIDが入っている。
        {
            int iFnd = str.Find('\n');    // ツールチップ用とステータスバー用と分ける。
            if(iFnd != -1)
                str = str.Left(iFnd);
            m_wndStatusBar.SetPaneText(0, str);
// ここの"0"は、ステータスバーの表示したい位置を指定する。
        }
    }

    return CView::WindowProc(message, wParam, lParam);
}
 ここで、メインフレームのように、普段「レディ」と表示され、ツールバーボタンにカーソルが乗った時だけ説明が表示されるようにするには、リソースの「String Table」内の該当IDに表示させたい文字(レディとか)を設定しておけばいい。

 ビューのステータスバーではなく、メインフレームのステータスバーに説明を表示させたい場合は、メッセージをそのままメインウインドウへ送ればよい。
LRESULT CXXXView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    if(message == WM_SETMESSAGESTRING)
        theApp.m_pMainWnd->SendMessage(message, wParam, lParam);

    return CView::WindowProc(message, wParam, lParam);
}
 これで後は、メインフレームの方で勝手にやってくれる。
ランキングへ     posted by 遠雷 | Comment(0) | ビュー
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。