KumaBarBand.cpp


// KumaBarBand.cpp : CKumaBarBand の実装

#include "stdafx.h"
#include "KumaBarBand.h"


// CKumaBarBand



// IDeskBand
STDMETHODIMP CKumaBarBand::GetBandInfo(DWORD /* dwBandID */, DWORD /* dwViewMode */, DESKBANDINFO* pdbi)
{
    if (pdbi)
    {
        //ツールバーの最小サイズ
        if (pdbi->dwMask & DBIM_MINSIZE)
        {
            pdbi->ptMinSize.x = 100;
            pdbi->ptMinSize.y = 22;
        }
        //ツールバーの最大サイズ
        //0なら未設定
        if (pdbi->dwMask & DBIM_MAXSIZE)
        {
            pdbi->ptMaxSize.x = -1;
            pdbi->ptMaxSize.y = 22;
        }
        //分からない、知らない
        if (pdbi->dwMask & DBIM_INTEGRAL)
        {
            pdbi->ptIntegral.x = 1;
            pdbi->ptIntegral.y = 1;
        }
        //小麦粉か何かだ
        if (pdbi->dwMask & DBIM_ACTUAL)
        {
            pdbi->ptActual.x = -1;
            pdbi->ptActual.y = 22;
        }
        if (pdbi->dwMask & DBIM_TITLE)
        {
            //ツールバー左側に表示されるタイトル文字列
            wcscpy_s(pdbi->wszTitle, _T("KUMA"));
        }
        if( pdbi->dwMask & DBIM_BKCOLOR )
        {
            //こう書いておけば、デフォルトの背景色になってくれるらしい
            pdbi->dwMask &= ~DBIM_BKCOLOR;
        }
        if (pdbi->dwMask & DBIM_MODEFLAGS)
        {
            pdbi->dwModeFlags = 
                //他のサンプルの多くはこう書いていた
                DBIMF_NORMAL | DBIMF_USECHEVRON |
                //バーを表示する際に、必ず次の行にしてくれる指定だそうな
                DBIMF_BREAK;
        }
    }
    return S_OK;
}


// IOleWindow
STDMETHODIMP CKumaBarBand::GetWindow(HWND* /* phwnd */)
{
    //ツールバーのWindowハンドルを返す
    //現状はまだツールバーを作ってないので、何も返さない

    return S_OK;
}

STDMETHODIMP CKumaBarBand::ContextSensitiveHelp(BOOL /* fEnterMode */)
{
    return E_NOTIMPL;
}


// IDockingWindow
STDMETHODIMP CKumaBarBand::ShowDW(BOOL /* fShow */)
{
    //ツールバーのShowWindowを実行する
    //まだツールバーを作ってないので、何もしない

    return S_OK;
}

STDMETHODIMP CKumaBarBand::CloseDW(unsigned long /* dwReserved */)
{
    //CLOSE時の動作。ツールバーを非表示にする
    ShowDW(FALSE);

    return S_OK;
}

STDMETHODIMP CKumaBarBand::ResizeBorderDW(const RECT* /* prcBorder */, IUnknown* /* punkToolbarSite */, BOOL /* fReserved */)
{
    return E_NOTIMPL;
}

戻る

コメントスペース