elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  MessageBox , problema a la hora de mostralo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: MessageBox , problema a la hora de mostralo.  (Leído 4,304 veces)
piluve

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
MessageBox , problema a la hora de mostralo.
« en: 17 Enero 2014, 12:51 pm »

Hola!!!

Tengo un problema con esta función de la librería windows.h.

El problema es que estoy utilizando estas ventanas para mostrar mensajes de error cuando el usuario hace cosas indebidas.

Aquí os dejo el código:


Código:
void Mensaje(int cod)
{
    if(cod==0)
    {
        MessageBox(NULL, "Pon la ficha sobre un espacio en blanco" , "Stratego 1.0",MB_OK );
        //MB_ICONASTERISK
        //MessageBox(NULL,)
    }
    if(cod==1)
    {
        //MessageBox(NULL, "Has pulsado una tecla no registrada" , "Stratego 1.0", MB_ICONASTERISK);
    }

}



Tengo dos problemas:

El primero, cuando salta la ventana POR PRIMERA VEZ, salta en segundo plano no por encima de mi programa.

Cuando salta la ventana , si selecciono mi programa y hago cualquier acción , cuando cierro mi Messagebox, estas acciones se hacer.

¿Cómo puedo hacer para evitar estas cosas?

Un saludo


« Última modificación: 18 Enero 2014, 12:50 pm por piluve » En línea

Blog de hacking,noticias,seguridad informática,tutoriales...
http://hackerpedia.wordpress.com
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #1 en: 17 Enero 2014, 15:50 pm »

El primer parametro es un HWND, pasandole el correcto deberias solucionar ambos problemas ya que como dice la documentacion:

MB_APPLMODAL
0x00000000L

The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, the user can move to the windows of other threads and work in those windows.

...

MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL is specified.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
piluve

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #2 en: 18 Enero 2014, 13:05 pm »

Hola!

Gracias por tu respuesta, lo que he conseguido es que mi ventana se muestre ahora en "TOP" siempre pero no puedo evitar que si el usuario selecciona la aplicación pueda hacer cosas aún estando el messagebox.

Código:
MessageBox(NULL, "Pon la ficha sobre un espacio en blanco" , "Stratego 1.0",MB_OK|MB_TOPMOST|MB_APPLMODAL);

Creo que ahora el problema esta en que debería asignarle una ventana al campo "NULL" pero no estoy muy seguro de como hacerlo.

Un saludo.
En línea

Blog de hacking,noticias,seguridad informática,tutoriales...
http://hackerpedia.wordpress.com
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #3 en: 18 Enero 2014, 17:32 pm »

Hola!

Gracias por tu respuesta, lo que he conseguido es que mi ventana se muestre ahora en "TOP" siempre pero no puedo evitar que si el usuario selecciona la aplicación pueda hacer cosas aún estando el messagebox.

Código:
MessageBox(NULL, "Pon la ficha sobre un espacio en blanco" , "Stratego 1.0",MB_OK|MB_TOPMOST|MB_APPLMODAL);

Creo que ahora el problema esta en que debería asignarle una ventana al campo "NULL" pero no estoy muy seguro de como hacerlo.

Un saludo.
Lo que debes hacer es obtener el handle de la ventana de la aplicación principal ( no ventanas hijas ) y pasarselo al primer parametro
de MessageBox. Yo no sé de que manera estas creando la ventana principal así que no podria decirte algo directo o talvez FindWindow pero seria incesario si la estas creando por ejemplo con CreateWindow simplemente guardas el valor retornado por la funcion para usarlo despues.
En línea

piluve

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #4 en: 18 Enero 2014, 18:35 pm »

En realidad no estoy creando una ventana sino que estoy utilizando el CMD de windows.

¿Quizás esto afecte en algo?

Un saludo.
En línea

Blog de hacking,noticias,seguridad informática,tutoriales...
http://hackerpedia.wordpress.com
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #5 en: 18 Enero 2014, 19:08 pm »

En realidad no estoy creando una ventana sino que estoy utilizando el CMD de windows.

¿Quizás esto afecte en algo?

Un saludo.
¿Que quieres decir?
Estas llamando la CMD desde tu programa C/C++ y enviandole comandos o estas usando directamente la CMD?
En línea

piluve

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #6 en: 18 Enero 2014, 19:14 pm »

Estoy haciendo un programa en modo texto que se ejecuta directamente en el intérprete de windows , el cmd.
En línea

Blog de hacking,noticias,seguridad informática,tutoriales...
http://hackerpedia.wordpress.com
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #7 en: 18 Enero 2014, 19:21 pm »

Estoy haciendo un programa en modo texto que se ejecuta directamente en el intérprete de windows , el cmd.
usa GetConsoleWindow, el resultado al primer parametro de MessageBox.
En línea

piluve

Desconectado Desconectado

Mensajes: 14



Ver Perfil WWW
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #8 en: 18 Enero 2014, 19:47 pm »

Parece que no funciona de esta manera.
 
Dice que "GetConsoleWindow(); was not declared on this scope."

He probado creando este define:
Código:
#define _WIN32_WINNT 0x0500

Y nada.

Esto no va ...
En línea

Blog de hacking,noticias,seguridad informática,tutoriales...
http://hackerpedia.wordpress.com
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: MessageBox , problema a la hora de mostralo.
« Respuesta #9 en: 18 Enero 2014, 19:56 pm »

Parece que no funciona de esta manera.
 
Dice que "GetConsoleWindow(); was not declared on this scope."

He probado creando este define:
Código:
#define _WIN32_WINNT 0x0500

Y nada.

Esto no va ...
Si es así entonces es error de compilación, que compilador estas usando? estas incluyendo las cabeceras correctas? Tu código?

En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
dll messagebox
Juegos y Consolas
nikito 2 3,318 Último mensaje 12 Septiembre 2005, 22:44 pm
por Mance
Problema con MessageBox
.NET (C#, VB.NET, ASP)
darkxxx 9 10,415 Último mensaje 16 Octubre 2008, 21:35 pm
por el_chente23
MessageBox, text in.
Programación C/C++
gxg 3 2,539 Último mensaje 12 Mayo 2011, 13:10 pm
por fary
Problema de Fecha y Hora en ASP.NET
.NET (C#, VB.NET, ASP)
jacj0102 2 3,728 Último mensaje 4 Agosto 2011, 06:51 am
por jacj0102
[Pregunta] MessageBox.
.NET (C#, VB.NET, ASP)
Zodiak98 2 2,512 Último mensaje 18 Septiembre 2013, 07:28 am
por Zodiak98
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines