[C con Clase] Resumen de Cconclase, Vol 54, Envío 36

alvaro martin garcia purifuri en gmail.com
Jue Nov 25 11:50:29 CET 2010


Hola, soy nuevo, aunque llevo tiempo programando en c++ (no mucho en mi
opinion, pero bueno)

Vengo de la web de cconclase, y me gustaria aprender a usar los graficos de
windows (es que en la pagina de cconclase no viene ningun tutorial,
recomienda a puntarse a esta lista de correos), y aprender sobre el manejo
de las APIs de windows.

Respecto al hombre que intenta hacer el ahoracado:

-Al menos desde mi punto de vista (no suelo hablar con muchos
programadores), estaría bien que las categorías, las de dentro del switch de
cada una de las categorías, las separaras en otras funciones. Recuerda que
si necesitas más de un parametro como salida, a parte de retorno, también
puedes poner el "&" delante de los parámetros.

Y en la categoría de deportes, cuando e empezado a leer, hay una linea que
despues de leer los deportes pones:
">               {switch (dep)"
ese "{", que intencion tienes al ponerlo?, eso se suele usar para encerrar
un bloque de codigo despues de un if, for, etc, pero la línea anterior es:
">             cin>> dep;".

(Eso es lo que he visto a simple vista, no lo he intentado compilar ni nada)



El 23 de noviembre de 2010 18:31,
<cconclase-request en listas.conclase.net>escribió:

> Envíe los mensajes para la lista Cconclase a
>        cconclase en listas.conclase.net
>
> Para subscribirse o anular su subscripción a través de la WEB
>
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
>
> O por correo electrónico, enviando un mensaje con el texto "help" en
> el asunto (subject) o en el cuerpo a:
>        cconclase-request en listas.conclase.net
>
> Puede contactar con el responsable de la lista escribiendo a:
>        cconclase-owner en listas.conclase.net
>
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of Cconclase digest...". Además, por favor, incluya en
> la respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
>
>
> Asuntos del día:
>
>   1. Re: Duda WinAPI (luis alfonso jimenez mejia)
>   2. videoconferencia sobre api de windows 32
>      (luis alfonso jimenez mejia)
>   3. Re: ahorcado, (luis alfonso jimenez mejia)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 23 Nov 2010 13:44:55 -0300
> From: luis alfonso jimenez mejia <viejolajimenez en gmail.com>
> To: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
> Subject: Re: [C con Clase] Duda WinAPI
> Message-ID:
>        <AANLkTikgLk+4WKf-LL6AJBPHJu6pE7SpR-Se-tdgcBTt en mail.gmail.com<AANLkTikgLk%2B4WKf-LL6AJBPHJu6pE7SpR-Se-tdgcBTt en mail.gmail.com>
> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> le  recomiendo  esta informacion de  seguro  encontrara algo  que le sirva
> http://winapi.conclase.net/curso/index.php
>
> El 22 de noviembre de 2010 17:02, Salvador Pozo <salvador en conclase.net
> >escribió:
>
> > El pasado 2010-11-22 16:38:54, Raúl escribió:
> >
> > R> Buenas!
> > R>        Soy nuevo por aquí y no se exactamente como funciona esto.
> Espero
> > que
> > R> sea así y podáis resolverme una duda que tengo. Gracias por
> adelantado.
> > R> Mi problema es que quiero mover una ventana ya existente, y parece
> facil
> > con
> > R> MoveWindow. Mi pregunta es, como sé la entrada hwnd? Porque quiero
> mover
> > la
> > R> ventana en la que esté el ratón en ese momento, no una que ya he
> creado
> > de
> > R> la cual sé todo. No se si me explico bien, q ando un poco liado.
> >
> > ¡Uf!
> > Así como lo explicas no parece fácil, voy a intentar delimitar un poco el
> > problema.
> >
> > ¿Tiene que ser la ventana sobre la que está el ratón, o la ventana activa
> > (la que tiene el foco)?
> >
> > Saber si el ratón está sobre una ventana específica es sencillo, pero hay
> > que tener en cuenta que las ventanas se superponen, y que el ratón puede
> > estar sobre muchas ventanas a la vez.
> >
> > Te copio un pequeño programa que averigua sobre qué ventana están unas
> > coordenadas concretas (en este caso 300,300).
> >
> > ----8<------
> > // Enlazar con la librería "gdi32"
> > #include <windows.h>
> > #include <wingdi.h>
> > #include <iostream>
> >
> > using namespace std;
> >
> > int main()
> > {
> >    HWND hwnd;
> >    char cad[256];
> >    RECT re;
> >    POINT p = {300, 300};
> >    bool encontrada=false;
> >
> >    hwnd = GetTopWindow(0);
> >
> >    do {
> >        if(ERROR != GetWindowRect(hwnd, &re)) {
> >            if(PtInRect(&re, p) && IsWindowVisible(hwnd)) {
> >                GetWindowText(hwnd, cad, 256);
> >                if(strlen(cad)) cout << "(" << re.left << "," << re.top <<
> > "," << re.right << "," << re.bottom << ") " << cad << endl;
> >                encontrada = true;
> >            }
> >        }
> >    } while(!encontrada && (hwnd = GetNextWindow(hwnd, GW_HWNDNEXT)));
> >    return 0;
> > }
> > ----8<------
> >
> > Con algunas modificaciones (que las coordenadas las proporcione un evento
> > del ratón), puedes adaptarlo a tus necesidades.
> >
> > Básicamente lo que hace el programa es obtener el manipulador de la
> ventana
> > "Top", es decir, la que esté más encima, verifica si las coordenadas
> están
> > en el rectángulo de la ventana y si la ventana es visible.
> >
> > Si es así, hemos encontrado la ventana que buscábamos.
> >
> > Si no es así, buscamos la siguiente ventana según el orden Z. Windows
> > mantiene una lista de ventanas, o más bien un árbol. En este caso sólo
> nos
> > interesan las TOP windows, es decir, las que corresponden con
> aplicaciones o
> > programas ejecutables. Hay otros órdenes, por ejemplo, las ventanas hijas
> de
> > cada una de ellas.
> >
> > Espero que te sirva.
> >
> > 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
> >
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: <
> http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/41c657cb/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Tue, 23 Nov 2010 13:55:23 -0300
> From: luis alfonso jimenez mejia <viejolajimenez en gmail.com>
> To: Cconclase en listas.conclase.net
> Subject: [C con Clase] videoconferencia sobre api de windows 32
> Message-ID:
>        <AANLkTi=ugF=BMgPuDzzfRtDBWHy_OH2EBjAksMqtC7cR en mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> este  software  del  skype  con sus  pantyalla compartidas  me parece
> fabulosos  para  la  videoconferencias , la idea  es  crear  unba
> videoconferencia  sobre  api de  windows o cosas  asi por  el eestilo mi
> usuario skype  es *luis.jimenez1982* , por  favor  no  soy  un experto
>  pero
> espero que  alguien  se  sume  ala inicativa para poder  intercambiar
> informacion en tiempo real
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: <
> http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/15dee050/attachment.html
> >
>
> ------------------------------
>
> Message: 3
> Date: Tue, 23 Nov 2010 14:29:17 -0300
> From: luis alfonso jimenez mejia <viejolajimenez en gmail.com>
> To: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
> Subject: Re: [C con Clase] ahorcado,
> Message-ID:
>        <AANLkTimTjoA6h1td5JTUX4T_6E_j79rKCWGvHHazsvSL en mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> ese rogrma  esta  bueno  me  gustaria  discutirlo  un  poco   mas  mi
> usuario  skype  es  *luis.jimenez1982 *
>
> El 23 de noviembre de 2010 10:16, milller ossa
> <jahve.ossab13 en gmail.com>escribió:
>
> > hola buen dia
> >
> > me dejaron una tarea de realizar el ahoracado , e avanzado algo con ayuda
> > de  amigos;
> > soy nuevo en el mundo de c++ , asi que no se muy bien algunas cosas ,
> > al copilarlo no me sale como deberia , hay dejo el codigo ; si alguien me
> > puede dar una manito, muchas gracias de antemano,
> >
> > #include <cstdlib>
> > #include <iostream>
> >
> > using namespace std;
> >
> > int main(int argc, char *argv[])
> > {
> >    char palabradusuario[5];
> >    int categoria;
> >    int dep;
> >    int pais;
> >    int ast;
> >
> >    cout << "
>  "<<
> > endl;
> >    cout << " 00000000 00  00 000000 000000 000000 000000 000000
> 000000"<<
> > endl;
> >    cout << " 00    00 00  00 00  00 00  00 00     00  00 00   00  00
>  00"<<
> > endl;
> >    cout << " 00    00 00  00 00  00 00  00 00     00  00 00    00 00
>  00"<<
> > endl;
> >    cout << " 00000000 000000 00  00 000000 00     000000 00    00 00
>  00"<<
> > endl;
> >    cout << " 00    00 00  00 00  00 00 00  00     00  00 00   00  00
>  00"<<
> > endl;
> >    cout << " 00    00 00  00 000000 00  00 000000 00  00 000000
> 000000"<<
> > endl;
> >    cout << "
> > "<< endl;
> >    cout << "
> > "<< endl;
> >    cout << "!!!PREPARADO PARA JUGAR???"<<endl;
> >    cout << "
> > "<< endl;
> >
> >    cout << "Escoja una categoria:" << endl;
> >    cout << " 1 :Deportes"<< endl;
> >    cout << " 2 :Paises"<< endl;
> >    cout << " 3 :Astronomia"<< endl;
> >    cin>> categoria;
> >
> >    switch (categoria)
> >    {
> >           case 1:
> >             cout<<"Usted a escojido Deportes:"<<endl;
> >             cout<<"Escoja una palabra de 1 a 10:"<<endl;
> >             cin>> dep;
> >
> >               {switch (dep)
> >                 {case 1:strcpy (palabradusuario, "tenis");
> >               cout<<"usted ha escojido una palabra de 5 oportunidades";
> >               break;
> >
> >               case 2: strcpy (palabradusuario, "baseball");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 3: strcpy (palabradusuario, "baloncesto");
> >               cout<<"usted ha escojido una palabra de 10 oportunidades";
> >               break;
> >
> >               case 4: strcpy (palabradusuario, "futbol");
> >               cout<<"usted ha escojido una palabra de 6 oportunidades";
> >               break;
> >
> >               case 6: strcpy (palabradusuario, "pingpong");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 7: strcpy (palabradusuario, "microfutbol");
> >               cout<<"usted ha escojido una palabra de 11 oportunidades";
> >               break;
> >
> >               case 8: strcpy (palabradusuario, "voleyball");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 9: strcpy (palabradusuario, "atletismo");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 10: strcpy (palabradusuario, "boxeo");
> >               cout<<"usted ha escojido una palabra de 5 oportunidades";
> >               break;
> >             break;}}
> >
> >        {
> >             case 2:
> >             cout<<"Usted a escojido Paises del Mundo:"<<endl;
> >             cout<<"Escoja una palabra de 1 a 10:"<<endl;
> >             cin>> pais;
> >             switch (pais)
> >               {case 1:strcpy (palabradusuario, "brasil");
> >               cout<<"usted ha escojido una palabra de 6 oportunidades";
> >               break;
> >
> >               case 2: strcpy (palabradusuario, "colombia");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 3: strcpy (palabradusuario, "baloncesto");
> >               cout<<"usted ha escojido una palabra de 10 oportunidades";
> >               break;
> >
> >               case 4: strcpy (palabradusuario, "futbol");
> >               cout<<"usted ha escojido una palabra de 6 oportunidades";
> >               break;
> >
> >               case 6: strcpy (palabradusuario, "pingpong");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 7: strcpy (palabradusuario, "microfutbol");
> >               cout<<"usted ha escojido una palabra de 11 oportunidades";
> >               break;
> >
> >               case 8: strcpy (palabradusuario, "voleyball");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 9: strcpy (palabradusuario, "atletismo");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 10: strcpy (palabradusuario, "boxeo");
> >               cout<<"usted ha escojido una palabra de 5 oportunidades";
> >               break;
> >               }
> >               break;
> >               }
> >
> >
> >          case 3:
> >               cout<<"Usted a escojido Astronomia:"<<endl;
> >               cout<<"Escoja una palabra de 1 a 10:"<<endl;
> >               cin>> ast;
> >               switch (ast)
> >               {case 1:strcpy (palabradusuario, "tenis");
> >               cout<<"usted ha escojido una palabra de 5 oportunidades";
> >               break;
> >
> >               case 2: strcpy (palabradusuario, "baseball");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 3: strcpy (palabradusuario, "baloncesto");
> >               cout<<"usted ha escojido una palabra de 10 oportunidades";
> >               break;
> >
> >               case 4: strcpy (palabradusuario, "futbol");
> >               cout<<"usted ha escojido una palabra de 6 oportunidades";
> >               break;
> >
> >               case 6: strcpy (palabradusuario, "pingpong");
> >               cout<<"usted ha escojido una palabra de 8 oportunidades";
> >               break;
> >
> >               case 7: strcpy (palabradusuario, "microfutbol");
> >               cout<<"usted ha escojido una palabra de 11 oportunidades";
> >               break;
> >
> >               case 8: strcpy (palabradusuario, "voleyball");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 9: strcpy (palabradusuario, "atletismo");
> >               cout<<"usted ha escojido una palabra de 9 oportunidades";
> >               break;
> >
> >               case 10: strcpy (palabradusuario, "boxeo");
> >               cout<<"usted ha escojido una palabra de 5 oportunidades";
> >               break;
> >               }}
> >
> >    char acertadas[20];
> >    strcpy (acertadas, palabradusuario);
> >    int largo = strlen (palabradusuario);
> >    for (char* ap = palabradusuario; *ap; ap++)
> >       cout << '_';
> >    cout << endl;
> >    int errores = 0, acierto;
> >    for (;;) {
> >        cout << "Escribe una letra que pienses que es parte de la palabra:
> > ";
> >        char letra;
> >        cin >> letra;
> >        char* ap;
> >        int acierto = 0;
> >        for (ap = acertadas; *ap; ap++)
> >            if (*ap == letra) {
> >               *ap = '_';
> >               acierto = 1;
> >            }
> >        if (!acierto) {
> >           if (++errores 0 >= strlen (palabradusuario)) {
> >              cout << "Demasiados errores!!!" << endl;
> >              break;
> >           } else
> >             cout << "Error!!! solo te quedan " << strlen
> (palabradusuario)
> > - errores << " oportunidades" << endl;
> >        } else {
> >           acierto = 0;
> >           for (int i = 0; palabradusuario[i]; i++)
> >              if (palabradusuario[i] != acertadas[i])
> >                 cout << palabradusuario[i];
> >              else {
> >                 cout << '_';
> >                 acierto = 1;
> >              }
> >           cout << endl;
> >           if (!acierto) {
> >              cout << "\tFelicidades!!! has ganado.\n";
> >              break;
> >           }
> >        }
> >    }
> >
> >    system("PAUSE");
> >    return EXIT_SUCCESS;
> > }
> >
> >
> > _______________________________________________
> > 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
> >
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: <
> http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/d4a1972f/attachment.html
> >
>
> ------------------------------
>
> _______________________________________________
> Cconclase mailing list
> Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
>
> Fin de Resumen de Cconclase, Vol 54, Envío 36
> *********************************************
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101125/c3c53f24/attachment.html>


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