Etapa 3: Adicionando uma propriedade ao controle do
IPolyCtl é a interface que contém propriedades e métodos personalizados do controle e você irá adicionar uma propriedade a ele.
Para adicionar uma propriedade usando o Assistente para adicionar propriedade
clicar com o botão direito do mouse IPolyCtl no modo de exibição de classe (expandir a ramificar poligonal para localizá-lo).
No menu de atalho, clicar Adicionare, em seguida, clicar Adicionar propriedade.
O Assistente para adicionar propriedades será exibida.
Na lista suspensa de tipos de propriedade, selecionar CURTO.
Tipo de Sides sistema autônomo o Nome de propriedade.
clicar Término para concluir a adição da propriedade.
Quando você adiciona a propriedade para a interface, MIDL (o programa que compila arquivos .idl) define um Get método para recuperar seu valor e um Put método para configuração um novo valor. Os métodos são nomeados, anexando ao início put_ e get_ o nome de propriedade.
O Assistente para adicionar propriedade adiciona as linhas necessárias para o arquivo .idl.Ele também adiciona o Get e Put função protótipos para a definição de classe PolyCtl.h e adiciona uma implementação vazia PolyCtl.cpp. Você pode verificar isso abrindo PolyCtl.cpp e procurando a funções get_Sides e put_Sides.
Embora você tenha o esqueleto funções para conjunto e recuperar a propriedade agora, ele precisa de um lugar para ser armazenado.Você irá criar uma variável para armazenar a propriedade e atualização as funções adequadamente.
Para criar uma variável para armazenar a propriedade e atualizar a colocar e obter métodos
No gerenciador de soluções, abra PolyCtl.h e adicione a seguinte linha após a definição de m_clrFillColor:
short m_nSides;
conjunto o valor padrão de m_nSides. Tornar o padrão de um triângulo de forma, adicionando uma linha para o construtor de PolyCtl.h:
m_nSides = 3;
Implementar o Get e Put métodos. The get_Sides e put_Sides declarações de função foram adicionadas ao PolyCtl.h. Adicione o seguinte código para PolyCtl.cpp para concluir os dois métodos:
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")); } }
The get_Sides método retorna o valor corrente das Sides propriedade através de pVal ponteiro. No put_Sides garante que o código de método, o usuário está configurando o Sides propriedade para 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. Na próxima etapa, você irá alterar o código de desenho para usá-lo.
Voltar para etapa 2 | A etapa 4