Etapa 3: Adicionando uma propriedade para o controle
IPolyCtl é a interface que contém os métodos personalizados e propriedades de controle, e você adicionar uma propriedade.
Para adicionar uma propriedade usando o assistente para adicionar propriedade
Em o modo da classe, expanda a ramificação polígono.
Clique com o botão direito do mouse IPolyCtl.
Em o menu de atalho, clique Adicionar, clique em Adicionar Propriedade.
O assistente de propriedade adicionar aparecerá.
Em a lista suspensa de tipos de propriedades, SHORTselecione.
Tipo lados como Nome da propriedade.
Clique em para concluir Concluir adicionar a propriedade.
Quando você adiciona a propriedade para a interface, MIDL (o programa que compila arquivos de .idl) define um método de Get para recuperar seu valor e um método de Put para definir um novo valor.Os métodos são chamados prepending put_ e get_ ao nome da propriedade.
O assistente de propriedade adicionar adiciona as linhas necessárias para o arquivo de .idl.Ele também adiciona os protótipos de função de Get e de Put a definição de classe em PolyCtl.h e adiciona uma implementação vazio a PolyCtl.cpp.Você pode verificar isso PolyCtl.cpp abrindo e procurando as funções get_Sides e put_Sides.
Embora você tenha agora as funções de esqueleto para definir e recuperar a propriedade, precisa de um local de ser armazenada.Você criará uma variável para armazenar a propriedade e para atualizar em conformidade com as funções.
Para criar uma variável para armazenar a propriedade, e para atualizar colocado e métodos para obter
Em o solution Explorer, PolyCtl.h abertos e adicione a seguinte linha após a definição de m_clrFillColor:
short m_nSides;
Defina o valor padrão de m_nSides.Faça a maneira padrão um triângulo adicionando uma linha para o construtor em PolyCtl.h:
m_nSides = 3;
Implementar métodos de Get e de Put .Declarações de função de get_Sides e de put_Sides foram adicionados a PolyCtl.h.Substitua o código em PolyCtl.cpp para get_Sides e em put_Sides com o seguinte código:
STDMETHODIMP CPolyCtl::get_Sides(short* pVal) { *pVal = m_nSides; return S_OK; } STDMETHODIMP CPolyCtl::put_Sides(short newVal) { if (2 < newVal && newVal < 101) { m_nSides = newVal; return S_OK; } else { return Error(_T("Shape must have between 3 and 100 sides")); } }
O método de get_Sides retorna o valor atual da propriedade de Sides através do ponteiro de pVal .Em o método de put_Sides , o código garante que o usuário está definindo a propriedade de Sides a um valor aceitável.O mínimo deve ser 2, e como uma matriz de pontos será usada para cada lado, 100 é um limite razoável para um valor máximo.
Agora você tem uma propriedade chamada Sides.Em o próximo passo, você irá alterar o código de desenho usá-lo.
De volta para a etapa 2 | a etapa 4