C/Visual C - mas eventos

 
Vista:

mas eventos

Publicado por guillermin (5 intervenciones) el 27/02/2008 18:53:31
como agregar mas eventos a un control edit por ejemplo keypress o keydown
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:mas eventos

Publicado por fernando.gomez (1603 intervenciones) el 27/02/2008 22:52:22
Pues capturas los eventos WM_KEYPRESS y WM_KEYDOWN en tu mapa de mensajes (BEGIN_MESSAGE_MAP / END_MESSAGE_MAP) al control que estás subclaseando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mas eventos

Publicado por guillermin (5 intervenciones) el 28/02/2008 16:16:48
pero en el classwizard no estan disponibles esos eventos para agregarlos como los agrego???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mas eventos

Publicado por fernando.gomez (1603 intervenciones) el 28/02/2008 18:07:36
Ah, no sé de classwizards, no los uso, son un asco.

Primero lo primero. Para hacer eso que quieres necesitas crear una clase derivada de CEdit. Luego en el archivo cpp donde esá el mapa de mensajes, añades lo que te había comentado:

BEGIN_MESSAGE_MAP(CMiEdit, CEdit)
...
ON_WM_KEYPRESS()
...
END_MESSAGE_MAP()

y luego en tu clase implementas el método que atrapa el mensaje, a saber, OnKeyPress.

Posteriormente, en la ventana donde vayas a emplear el control derivado, lo puedes subclasear a través del DDX. En esencia, crea un miembro del tipo de dato de tu CEdit (CMiEdit, digamos). Luego, en el DoDataExchange lo enlazas con el ID del control que tienes en tu archivo de recursos (digamos, IDC_EDIT):

DDX_Control(pDX, IDC_EDIT, m_miEdit);

Finalmente, en el OnCreate de la ventana (o en el OnInitDialog, si se trata de un diálogo) tienes que subclasear el control para que éste reciba los mensajes en lugar del padre, mandando llamar a la función SubclassWindow / SubclassDlgItem

m_miEdit.SubclassDlgItem(IDC_EDIT, this);

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mas eventos

Publicado por guillermin (5 intervenciones) el 28/02/2008 21:22:46
el classwizard ayuda un monton pero voy a ver como le hago para insertarlo gracias por el aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar