[C con Clase] Problemas con cuadros de dialogo

Kyosuke Kasuga kyosuke_cl en yahoo.es
Mar Ene 8 00:36:29 CET 2008


Hi!!!. Muchas gracias por la respuesta, la verdad es que no sé como no me pude dar cuenta de ese error, solo agregé el "return FALSE" y me funcionó al toque, ahora me pasa algo curioso, la verdad no se si será un error, pero cuando ejecuto mi programa no solo me aparece la ventana normal, sino tambien la ventana de consola (ventana negra en modo texto), la verdad no me molesta ni nada, pero ¿es normal que salga esta ventana?, antes no me aparecia esta ventana, solo en los programas con OpenGL me salia, bueno si alguien sabe algo me avisan porfa.
   
  Salu2. 

Salvador Pozo <salvador en conclase.net> escribió:
  Hola:

Hay que tener cuidado con los valores de retorno de las funciones.

En tu caso, si nos fijamos, los procedimientos de diálogo tienen que retornar un valor BOOL. Para el sistema, el valor de retorno tiene un significado importante. 

http://winapi.conclase.net/curso/index.php?fun=DialogProc

Según la documentación del API:
"Excepto en la respuesta al mensaje WM_INITDIALOG, el procedimiento de diálogo debe retornar con un valor no nulo si procesa el mensaje y cero si no lo hace. Cuando responde a un mensaje WM_INITDIALOG, el procedimiento debe retornar cero si llama a la función SetFocus para poner el foco a uno de los controles del cuadro de diálogo. En otro caso, debe retornar un valor distinto de cero, en ese caso el sistema pondrá el foco en el primer control del diálogo que pueda recibirlo."

Un valor verdadero (TRUE) indica que el procedimiento ha procesado el mensaje, y no se necesita que el sistema haga nada más al respecto.

Esto es lo que está pasando en tu programa con la mayoría de los mensajes (todos menos el WM_COMMAND para casos como el botón de aceptar y cancelar). De modo que el sistema no procesa, por ejemplo, el mensaje WM_PAINT o WM_NCPAINT, y por eso los controles aparecen "flotando".

En general, bastará con añadir una línea return FALSE; al final de la función, para todos los casos que no estén previstos en el switch que procesa los mensajes recibidos.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ



Entre más numerosos somos, más cerca estamos de nuestra propia extinción. 

http://bisbirudolfo.blogspot.com/
       
---------------------------------

Web Revelación Yahoo! 2007:
 Premio Favorita del Público - ¡Vota tu preferida!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080108/491785b9/attachment.html>


Más información sobre la lista de distribución Cconclase