Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
IPolyCtl é a interface que contém os métodos e propriedades personalizados do controle, e você adicionará uma propriedade a ele.
Para adicionar as definições de propriedade ao seu projeto
Na Vista de Classe, expanda a
Polygonramificação.Clique com o botão direito do rato em
IPolyCtl.No menu de atalho, clique em Adicionar e, em seguida, clique em Adicionar propriedade. O assistente Adicionar propriedade irá aparecer.
Digite
Sidescomo o nome da propriedade.Na lista suspensa de Tipo de propriedade, selecione
short.Clique em OK para concluir a adição da propriedade.
No Gerenciador de Soluções, abra Polygon.idl e substitua as seguintes linhas no final da
IPolyCtl : IDispatchinterface:short get_Sides(); void set_Sides(short value);com o
[propget, id(1), helpstring("property Sides")] HRESULT Sides([out, retval] short *pVal); [propput, id(1), helpstring("property Sides")] HRESULT Sides([in] short newVal);No Gerenciador de Soluções, abra PolyCtl.h e adicione as seguintes linhas após a definição de
m_clrFillColor:short m_nSides; STDMETHOD(get_Sides)(short* pval); STDMETHOD(put_Sides)(short newval);
Embora agora disponhas de funções básicas para definir e recuperar a propriedade, além de uma variável para armazená-la, deves implementar as funções de acordo.
Para atualizar os métodos get e put
Defina o valor padrão de
m_nSides. Torne a forma padrão um triângulo adicionando uma linha ao construtor em PolyCtl.h:m_nSides = 3;Implemente os métodos
GetePut. As declarações de funçãoget_Sideseput_Sidesforam adicionadas ao PolyCtl.h. Agora adicione o código paraget_Sideseput_Sidespara PolyCtl.cpp com o seguinte: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 get_Sides retorna o valor atual da Sides propriedade através do ponteiro pVal.
put_Sides No método, o código garante que o usuário está definindo a Sides propriedade para um valor aceitável. O mínimo deve ser 3, 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ê alterará o código de desenho para usá-lo.
Voltar ao Passo 2 | Rumo ao Passo 4