⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mypanecontainer.cpp

📁 WTL for MFC Programmers中第7章的例子
💻 CPP
字号:
// MyPaneContainer.cpp: implementation of the CMyPaneContainer class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MyPaneContainer.h"

//////////////////////////////////////////////////////////////////////

void CMyPaneContainer::EnableColoredHeader ( bool bEnable )
{
    if ( bEnable != m_bColoredHeader )
        {
        m_bColoredHeader = bEnable;
        RedrawWindow();
        }
}

BOOL CMyPaneContainer::GetToolTipText(LPNMHDR lpnmh)
{
NMTTDISPINFOA* pnmdiA = (NMTTDISPINFOA*) lpnmh;
NMTTDISPINFOW* pnmdiW = (NMTTDISPINFOW*) lpnmh;

    if ( lpnmh->code == TTN_GETDISPINFOA )
        {
        pnmdiA->lpszText = "Fermez!";
        pnmdiA->uFlags |= TTF_DI_SETITEM;
        }
    else
        {
        pnmdiW->lpszText = L"Fermez!!";
        pnmdiW->uFlags |= TTF_DI_SETITEM;
        }

    return 0;
}

void CMyPaneContainer::DrawPaneTitle ( CDCHandle dc )
{
RECT rect;

    // If we're not using a colored header, let the base class do the
    // default drawing.
    if ( !m_bColoredHeader )
        {
        CPaneContainerImpl<CMyPaneContainer>::DrawPaneTitle ( dc );
        return;
        }

    GetClientRect(&rect);

    if ( IsVertical() )
        {
        TRIVERTEX tv[] = { { rect.left, rect.top, 0xff00 },
                           { rect.left + m_cxyHeader, rect.bottom, 0, 0xff00 } };
        GRADIENT_RECT gr = { 0, 1 };

        dc.GradientFill ( tv, 2, &gr, 1, GRADIENT_FILL_RECT_V );
        }
    else
        {
        TRIVERTEX tv[] = { { rect.left, rect.top, 0xff00 },
                           { rect.right, rect.top + m_cxyHeader, 0, 0xff00 } };
        GRADIENT_RECT gr = { 0, 1 };

        dc.GradientFill ( tv, 2, &gr, 1, GRADIENT_FILL_RECT_H );

        rect.bottom = rect.top + m_cxyHeader;

        // draw title only for horizontal pane container
        dc.SaveDC();

        dc.SetTextColor ( RGB(255,255,255) );
        dc.SetBkMode ( TRANSPARENT );
        dc.SelectFont ( GetTitleFont() );

        rect.left += m_cxyTextOffset;
        rect.right -= m_cxyTextOffset;

        if ( m_tb.m_hWnd != NULL )
            rect.right -= m_cxToolBar;

        dc.DrawText ( m_szTitle, -1, &rect, 
                      DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_END_ELLIPSIS );

        dc.RestoreDC(-1);
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -