Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
La libreria di modelli attivi (ATL) continua a essere supportata. Tuttavia, non aggiungiamo più funzionalità né aggiorniamo la documentazione.
IPolyCtl è l'interfaccia che contiene i metodi e le proprietà personalizzati del controllo e vi verrà aggiunta una proprietà.
Per aggiungere le definizioni delle proprietà al progetto
In Class View, espandere il ramo
Polygon.Fare clic con il pulsante destro del mouse su
IPolyCtl.Scegliere Aggiungi dal menu di scelta rapida e quindi fare clic su Aggiungi proprietà. Verrà visualizzata la finestra di dialogo Aggiungi proprietà.
Digitare
Sidescome Nome Proprietà.Nell'elenco a discesa Tipo di proprietà, Selezionare
short.Fare clic su OK per completare l'aggiunta della proprietà.
Da Esplora soluzioni aprire Polygon.idl e sostituire le righe seguenti alla fine dell'interfaccia
IPolyCtl : IDispatch:short get_Sides(); void set_Sides(short value);con
[propget, id(1), helpstring("property Sides")] HRESULT Sides([out, retval] short *pVal); [propput, id(1), helpstring("property Sides")] HRESULT Sides([in] short newVal);Da Esplora soluzioni aprire PolyCtl.h e aggiungere le righe seguenti dopo la definizione di
m_clrFillColor:short m_nSides; STDMETHOD(get_Sides)(short* pval); STDMETHOD(put_Sides)(short newval);
Anche se ora si dispone di funzioni scheletro per impostare e recuperare la proprietà e una variabile per archiviare la proprietà, è necessario implementare le funzioni di conseguenza.
Per aggiornare i metodi get e put
Impostare il valore predefinito di
m_nSides. Impostare la forma predefinita su un triangolo aggiungendo una riga al costruttore in PolyCtl.h:m_nSides = 3;Implementare il metodo
Gete il metodoPut. Le dichiarazioni di funzioneget_Sideseput_Sidessono state aggiunte a PolyCtl.h. Aggiungere ora il codice perget_Sideseput_Sidesa PolyCtl.cpp con quanto segue: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")); } }
Il get_Sides metodo restituisce il valore corrente della Sides proprietà tramite il pVal puntatore.
put_Sides Nel metodo il codice garantisce che l'utente stia impostando la Sides proprietà su un valore accettabile. Il valore minimo deve essere 3 e, poiché per ogni lato verrà usata una matrice di punti, 100 è un limite ragionevole per un valore massimo.
È ora disponibile una proprietà denominata Sides. Nel passaggio successivo si modificherà il codice di disegno per usarlo.
Tornare al passaggio 2 | al passaggio 4