ツールバーの下にポップアップメニューを作成

[戻る]
だいすけ 2005/05/17(火) 20:19:47
VC++6.0 MFC windowsXP

ツールバーのボタンの下にポップアップする形で文字を入れたいです。



    m_wndToolBar.SetButtons( NULL, 13);
    m_wndToolBar.SetButtonInfo( 0,  ID_FOLDERS  ,        TBBS_BUTTON, 
0);
    m_wndToolBar.SetButtonInfo( 1,  ID_SEARCH   ,        TBBS_BUTTON, 
1);
    m_wndToolBar.SetButtonInfo( 9,  ID_SEPARATOR,    
    TBBS_SEPARATOR, 9);
    m_wndToolBar.SetButtonInfo( 2,  ID_EDIT_COPY,        TBBS_BUTTON, 
2);
    m_wndToolBar.SetButtonInfo( 3,  ID_EDIT_MOVE,        TBBS_BUTTON, 
3);
    m_wndToolBar.SetButtonInfo( 4,  ID_DELETE   ,        TBBS_BUTTON, 
4);
    m_wndToolBar.SetButtonInfo( 5,  ID_EDIT_UNDO,        TBBS_BUTTON, 
5);
    m_wndToolBar.SetButtonInfo( 9,  ID_SEPARATOR,    
    TBBS_SEPARATOR, 9);
    m_wndToolBar.SetButtonInfo( 6,  ID_VIEW_LARGEICON,    
    TBBS_BUTTON, 6);

    // ドロップダウンボタン. >>
    m_wndToolBar.ModifyStyle( 0, TBSTYLE_FLAT);        // フラットボタ
ンにする.

    m_wndToolBar.GetToolBarCtrl().SetExtendedStyle( 
TBSTYLE_EX_DRAWDDARROWS);

    TBBUTTONINFO tbi;

    tbi.dwMask= TBIF_STYLE;
    tbi.cbSize= sizeof( TBBUTTONINFO);
    m_wndToolBar.GetToolBarCtrl().GetButtonInfo( ID_VIEW_LARGEICON, &tbi);
    tbi.fsStyle |= TBSTYLE_DROPDOWN;
    m_wndToolBar.GetToolBarCtrl().SetButtonInfo( ID_VIEW_LARGEICON, &tbi);
    // ドロップダウンボタン. <<

ここまでできたのですが、
どのようにしてポップアップしてよいのかわかりません。
誰か教えてください

だいすけ 2005/05/17(火) 22:20:11
追加です。
メニューからボップアップを表示されるのですが、
文字が表示されません。


// ドロップダウンボタン. ドロップダウンメニューの表示.
BOOL CMainFrame::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
{
#define lpnm   ((LPNMHDR)lParam)
#define lpnmTB ((LPNMTOOLBAR)lParam)
    switch( lpnm->code)
    {
    case TBN_DROPDOWN:
        {
            HWND        hwnd = lpnmTB->hdr.hwndFrom;
            RECT        rc;
            CMenu        menu;
            VERIFY( menu.LoadMenu( IDR_MAINFRAME2));
            ASSERT( menu != NULL);
            m_wndToolBar.GetItemRect( 
m_wndToolBar.CommandToIndex( lpnmTB->iItem), &rc);
            m_wndToolBar.ClientToScreen( &rc);
            menu.TrackPopupMenu( TPM_LEFTALIGN | 
TPM_RIGHTBUTTON,
                rc.left, rc.bottom + 1, this);
            return FALSE;
        }
        break;
    }

    return CFrameWnd::OnNotify(wParam, lParam, pResult);
}

古いスレッドには追加発言できません。