Como adicionar itens de Menu, botões da barra de Controlarar e um folha de propriedades para o objeto Snap-In?

Existem vários componentes de interface (UI) de usuário do MMC snap-in do objeto que pode ser personalizado. Algumas dessas áreas, tais como botões da barra de ferramentas e itens de menu, afetam componentes do aplicativo MMC. O componente final é um folha de propriedades padrão que exibe as propriedades do snap-in do objeto, que pode ser personalizado pelo usuário. Por padrão, o Assistente de Snap-In do MMC não gera quaisquer elementos interface do usuário personalizados. No entanto, existem espaços reservados em todo o código do objeto snap-in que indicam onde os elementos da IU personalizados podem ir.

Adicionando itens de Menu de contexto personalizado

Uma área que você pode personalizar é o menu de contexto para os itens do objeto snap-in. Quatro itens de menu estão disponíveis para personalização: Top, New, tarefa e exibição. O Snap-In assistente cria um recurso de menu com espaços reservados para os quatro slots.

Porque o recurso de menu é conhecido pelo objeto snap-in, adicione quaisquer itens de menu personalizados necessários sob o slot apropriado e eles aparecem automaticamente no menu de contexto de qualquer snap-in do item. O snap-in do item sabe qual recurso de menu usar porque o objeto de dados contém a seguinte declaração:

 SNAPINMENUID(IDR_MMCSNAP_MENU)

O SDK de plataforma fornece uma interface ( IExtendContextMenu) para personalizar o menu de contexto de um snap-in do item. Na maioria dos casos, você não precisará chamar essa interface diretamente, mas se o snap-in é avançado, obter mais informações sobre essa interface estão disponíveis no SDK da plataforma.

Botões de barra de Controlarar adicionando

Se seu objeto snap-in usa uma barra de ferramentas personalizada, você pode adicionar qualquer número de botões para ele depois que foi criado o recurso de barra de ferramentas. Em seguida, você pode fornecer manipuladores para cada botão para manipular tarefas personalizadas. Para obter mais informações, consulte como adicionar um recurso de barra de ferramentas para o objeto Snap-In?.

O SDK de plataforma fornece uma interface ( IExtendControlbar) para personalizar a barra de Controlarar de um snap-in. Na maioria dos casos, você não precisará chamar essa interface diretamente, mas se o snap-in é avançado, obter mais informações sobre essa interface estão disponíveis no SDK da plataforma.

Adicionar uma folha de propriedades

Cada item de snap-in pode exibir umPlanilha de propriedades padrão, acessível a partir do menu de contexto quando o usuário clica o mouse.

Por padrão, o Snap-In do MMC do assistente não fornece a implementação para essa funcionalidade. No entanto, se você selecionar a caixa de seleção IExtendPropertySheet , o assistente cria uma classe de página de propriedade padrão ( CSnapNamePage , derivada de CSnapInPropertyPageImpl) e um recurso de diálogo (IDD_SnapName) para a folha de propriedades.

Para completar esse recurso, adicione controles que permitem que o usuário modificar as propriedades do snap-in do item.

Para adicionar páginas adicionais para a folha de propriedades, você precisa de uma nova classe de página de propriedade, um novo recurso de caixa de diálogo e código adicional no método CreatePropertyPages de sua classe de dados. Neste exemplo, a nova classe é chamada CMMCSnapPage2 e o recurso de caixa de diálogo éIDD_MMCSNAP2.

Depois de ter as classes necessárias e os recursos, adicioná-los para o método CreatePropertyPages para criar e adicionar a nova página de propriedade para a folha. Por exemplo, o código a seguir adiciona uma nova página ( pPage2 ), implementado com o novo CMMCSnapPage2 classe, para o objeto snap-in:

CMMCSnapPage2 * pPage2 = novo CMMCSnapPage2(_T("MMCSnap2"));
lpProvider-gt;AddPage (pPage2 - > Create())

O SDK de plataforma fornece uma interface ( IExtendPropertySheet) para personalizar a folha de propriedades de um snap-in. Na maioria dos casos, você não precisará chamar essa interface diretamente, mas se o snap-in é avançado, obter mais informações sobre essa interface estão disponíveis no SDK da plataforma.

Index