El sitio más completo sobre programación, recursos web y herramientas online para Webmasters
Fecha: 20/04/2003

La caracteristica propiedad virtual de Microsoft Visual C++

Trucos visual-c:
Este truco permite ver endetalle, la característica propiedad virtual de Microsoft Visual C++, mucho del código heredado de C++ contiene variables miembro que son expuestas directamente usando palabras clave públicas o protegidas en lugar de las funciones


Código Visual C++


Algunas veces es necesario crear un botón que parmanesca abajo cuando es 
precionado y arriba cuando no se preciona más. Este efecto es posible realizarlo
utilizando algunas clases derivadad de CButton.
<p>1) Crear una aplicación SDI.<br>
2) Comenzar el Class Wizard y agregar una nueva clase llamada CStickyButton,
derivada de CButton.<br>
3) Una vez que el código de CStickyButton fué generado, agregarle
2 variables miembro.</p>
<p> BOOL m_bState;<br>
BOOL m_bIgnore;</p>
<p>/ Inicializar las variables en el contructor</p>
<p>CStickyButton::CStickyButton()<br>
{<br>
m_bState = FALSE;<br>
m_bIgnore = FALSE;<br>
}</p>
<p>/CStickyButton necesita notificar al la ventana principal de su estado.</p>
<p> #define WM_STICKYBUTTONDOWN (WM_USER+1)<br>
#define WM_STICKYBUTTONUP (WM_USER+2)</p>
<p>/Sumar dos handlers a CStickyButton, uno para BN_CLICKED y otro para WM_KILLFOCUS.<br>
Void MyButton::OnClicked()<br>
{</p>
<p> if (m_bIgnore) {<br>
m_bIgnore = FALSE;<br>
SetState(TRUE);<br>
}</p>
<p>else {</p>
<p>m_bState = !m_bState;<br>
SetState(m_bState);<br>
ASSERT(GetParent());<br>
GetParent() ->SendMessage(m_bState ? WM_STICKYBUTTONDOWN : WM_STICKYBUTTONUP);<br>
}<br>
}</p>
<p>void MyButton::OnKillFocus(CWnd* pNewWnd)<br>
{<br>
if (m_bState) {<br>
m_bIgnore = TRUE;<br>
}</p>
<p>CButton::OnKillFocus(pNewWnd);<br>
}</p>
<p>/ La función OnClicked reserva el último estado del botón
y le indíca que permanesca /abajo si es necesario.<br>
/ Ahora hay que agregar un botón a la clase derivada CView.</p>
<p>#include "StickyButton.h"<br>
#define IDC_MYBUTTON 105</p>
<p>class CMyView : public CView</p>
<p>/Sumar una variable miembro a la clase CView.</p>
<p>CStickyButton m_Button;</p>
<p>/Finalmente creamos el boton usando el class wizards para sumar un handler
para /WM_CREATE en la clase derivada /CView.</p>
<p>int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)<br>
{<br>
if (CView::OnCreate(lpCreateStruct) == -1)<br>
return -1;</p>
<p>m_Button.Create("Botón multi-estado", WS_CHILD | WS_VISIBLE
| BS_PUSHBUTTON, CRect(10, 10, 500, 50), this, IDC_MYBUTTON);</p>
<p>rerturn 0;<br>
}</p>
<p>/ Sumar 2 funciones a CView para down y up.</p>
<p>void CMyView::OnMyButtonUp (void)<br>
{<br>
// hacer cuando el botón esté up<br>
}</p>
<p>void CMyView::OnMyButtonDown(void)<br>
{<br>
// hacer cuando el botón esté down<br>
}</p>
<p>/ El último paso es sumar handlers a el message map en la clase derivada
CView.</p>
<p>BEGIN_MESSAGE_MAP(CStickyView, CView)<br>
ON_MESSAGE(WM_STICKYBUTTONDOWN, OnMyButtonDown)<br>
ON_MESSAGE(WM_STICKYBUTTONUP, OnMyButtonUp)<br>
END_MESSAGE_MAP() </p>
<p></p>
La caracteristica propiedad virtual de Microsoft Visual C++ Categoría: Trucos, Visual C++


Scripts Similares:

» Cambiar el titulo de una ventana
» Cambiar el Wallpaper de windows
» Crear un boton multiestado
» Crear una aplicacion que permanezca en la barra de tareas
» Ejecutar un archivo wav

Privacidad ּ Publicidad ּ Prensa ּ Premios ּ Colaborar ּ Enlazarnos ּ Mapa del Sitio ּ Aviso legal ּ Boletín ּ Contacto
2001 - 2011 | Sitio creado y mantenido por Gabriel Marcelo Rodríguez
Hosting de alta calidad a bajo costo Neolo.com.ar