Dicas de personalização para extensões do MFC
Este tópico fornece algumas dicas para personalizar seu aplicativo usando o Visual C++ 2008 Feature Pack. Isso não é uma lista completa de personalizações disponível com o Visual C++ 2008 Feature Pack, mas obterá você começar. O tópico também descreve as coisas que você deve considerar quando você usar alguns dos novos recursos.
Personalizações Geral
Você pode salvar e carregar o estado do seu aplicativo no registro.Quando você ativar essa opção, seu aplicativo carregará seu estado inicial do registro.Se você alterar o layout de ancoragem inicial para o seu aplicativo, você precisará desmarcar os dados do registro para o seu aplicativo.Caso contrário, os dados no registro serão substituir quaisquer alterações feitas no layout inicial.
Dicas de CBasePane
The Visual C++ 2008 Feature Pack apresenta o controle encaixáveis barras, conhecidas sistema autônomo painéis.As dicas de personalização a seguir tratam o Classe CBasePane e as classes que herdam dele:
Quando você criar um novo painel, você pode aplicar vários novos estilos:
AFX_CBRS_FLOAT -torna o painel float.
AFX_CBRS_AUTOHIDE -permite oculta automaticamente modo.
AFX_CBRS_CLOSE -painel pode ser fechado (oculto).
Esses são os sinalizadores que você pode agrupar com uma operação OR bit a bit.
CBasePane implementa os métodos a seguir, booliano virtual para refletir esses sinalizadores: CBasePane::CanBeClosed, CBasePane::CanAutoHide, CBasePane::CanFloat.Você pode substitui-las em classes derivadas para personalizar seu comportamento.
Você pode personalizar o comportamento de encaixe, substituindo CBasePane::CanAcceptPane. Com o painel retornar FALSE deste método para impedir que outro painel encaixe a ele.
Se você deseja criar um painel estático que não é possível float e que impede que qualquer Outros painel encaixe antes (semelhante à BAR do Outlook no exemplo OutlookDemo), crie-o sistema autônomo non-flutuante e substituir CBasePane::DoesAllowDynInsertBefore para retornar FALSE. A implementação padrão retorna FALSE Se o painel é criado sem AFX_CBRS_FLOAT estilo.
Crie todos os painéis com identificações diferente de -1.
Para determinar a visibilidade do painel, use CBasePane::IsVisible. Ele trata corretamente a visibilidade com guias e ocultar automaticamente modos de estado no.
Se desejar criar um painel redimensionável não flutuante, crie-lo sem AFX_CBRS_FLOAT estilo e a telefonar CFrameWnd::DockControlBar.
Para excluir um painel de um layout de encaixar ou remover uma BAR de ferramentas da BAR de encaixar, telefonar CBasePane::UndockPane. Não telefonar este método para painéis no modo de ocultação automática ou para painéis que residem nas guias das janelas com guias.
Se você deseja float ou desencaixar um painel que está no modo de ocultação automática, você deverá telefonar CDockablePane::SetAutoHideMode com FALSE sistema autônomo o primeiro argumento antes de você telefonar CBasePane::FloatPane ou CBasePane::UndockPane.
Personalizações do controle guia
The Visual C++ 2008 Feature Pack amplia a funcionalidade do controle guia. As dicas a seguir tratam o Classe CMFCBaseTabCtrl e as classes que herdam dele:
Se você habilitar guias removíveis, não mantenha ponteiros para as janelas com guias.Essas guias externos podem ser criados e destruídos dinamicamente.Portanto, ponteiros podem se tornar inválidos.
Você pode configurar o controle guia, de modo que os usuários possam mover guias dinamicamente em um controle guia com o mouse.Essa funcionalidade está embutida no CMFCBaseTabCtrl classe. Para habilitá-lo, chame CMFCBaseTabCtrl::EnableTabSwap.
Por padrão, as guias são removíveis quando você adicioná-los a um controle guia.Você também pode adicionar guias não removíveis usando CMFCBaseTabCtrl::AddTab. Se você conjunto o parâmetro bDetachable para FALSE, na guia não será removível. Você também pode alterar se as guias são removíveis chamando o método CMFCBaseTabCtrl::EnableTabDetach.
Todos os objetos que são obtidos com o Classe CWnd pode ser colocado em uma BAR de controle encaixáveis ou guia acoplável. Para o controle inteiro a ser ancorada, você deve fazer o CWnd objeto acoplável. Para fazer isso, a Visual C++ 2008 Feature Pack usa uma classe wrapper. Essa classe wrapper é o Classe CDockablePaneAdapter. Any CWnd objetos que são adicionados a uma BAR de controle encaixáveis ou guia encaixáveis irão ser dispostos dentro de um CDockablePaneAdapter objeto. Você pode desabilitar a quebra automático por configuração o parâmetro m_bEnableWrapping do seu CMFCBaseTablCtrl objeto para FALSE. Você também pode alterar qual classe o aplicativo usará sistema autônomo um wrapper, usando o método CMFCBaseTabCtrl::SetDockingBarWrapperRTC.
Dicas de CDockingManager
As dicas a seguir se aplicam a CDockingManager objetos:
Classe CDockingManager oferece suporte a três modos de encaixe:
AFX_DOCK_TYPE::DT_IMMEDIATE
AFX_DOCK_TYPE::DT_STANDARD
AFX_DOCK_TYPE::DT_SMART
Esses modos encaixe são definidos por CDockingManager::m_dockModeGlobal e são conjunto chamando CDockingManager::SetDockingMode.
Se você deseja criar um painel não flutuante, não dimensionável, telefonar o CDockingManager::AddPane método. Esse método registra o painel com o gerente de encaixe, que é responsável pelo layout do painel.
Dicas de CDockablePane
As dicas a seguir se aplicam a CDockablePane objetos:
If you telefonar CDockablePane::AttachToTabWnd para dois painéis encaixáveis, com guias não, um ponteiro para uma janela com guias será retornado o ppTabbedControlBar parâmetro. Você pode continuar adicionando guias para a janela com guias usando esse parâmetro.
O tipo de painel com guias é criado por CDockablePane::AttachToTabWnd é determinado pela CDockablePane objeto na pTabControlBarAttachTo parâmetro. Você pode chamar CDockablePane::SetTabbedPaneRTC Para conjunto o tipo de painel com guias que o CDockablePane será criar. O tipo padrão é determinado pelo dwTabbedStyle de CDockablePane::criar Quando você cria pela primeira vez o CDockablePane. If dwTabbedStyle é o tipo padrão é AFX_CBRS_OUTLOOK_TABS Classe CMFCOutlookBar; Se dwTabbedStyle é o tipo padrão é AFX_CBRS_REGULAR_TABS Classe CTabbedPane.
Se você deseja encaixar um painel encaixável para outro, você telefonar o CDockablePane::DockToWindow método. O painel original deve ser encaixado em algum lugar antes de você telefonar esse método.
O membro variável CDockablePane::m_bHideInAutoHideMode controles como painéis encaixáveis se comportam em Ocultar Automaticamente modo quando você telefonar CDockablePane::ShowPane. Se essa variável de membro for definido como TRUE, painéis encaixáveis e seus botões de ocultar automaticamente ficará oculta. Caso contrário, eles serão deslize check-in e check-out.
Você pode desabilitar Ocultar Automaticamente animação definindo o CDockablePane::m_bDisableAnimation variável de membro para TRUE.