Hola, soy nuevo, aunque llevo tiempo programando en c++ (no mucho en mi opinion, pero bueno)<br><br>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.<br>
<br>Respecto al hombre que intenta hacer el ahoracado:<br><br>-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.<br>
<br>Y en la categoría de deportes, cuando e empezado a leer, hay una linea que despues de leer los deportes pones:<br>">               {switch (dep)"<br>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;".<br>
<br>(Eso es lo que he visto a simple vista, no lo he intentado compilar ni nada)<br><br><br><br><div class="gmail_quote">El 23 de noviembre de 2010 18:31,  <span dir="ltr"><<a href="mailto:cconclase-request@listas.conclase.net">cconclase-request@listas.conclase.net</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Envíe los mensajes para la lista Cconclase a<br>
        <a href="mailto:cconclase@listas.conclase.net">cconclase@listas.conclase.net</a><br>
<br>
Para subscribirse o anular su subscripción a través de la WEB<br>
        <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
<br>
<br>
O por correo electrónico, enviando un mensaje con el texto "help" en<br>
el asunto (subject) o en el cuerpo a:<br>
        <a href="mailto:cconclase-request@listas.conclase.net">cconclase-request@listas.conclase.net</a><br>
<br>
Puede contactar con el responsable de la lista escribiendo a:<br>
        <a href="mailto:cconclase-owner@listas.conclase.net">cconclase-owner@listas.conclase.net</a><br>
<br>
Si responde a algún contenido de este mensaje, por favor, edite la<br>
linea del asunto (subject) para que el texto sea mas especifico que:<br>
"Re: Contents of Cconclase digest...". Además, por favor, incluya en<br>
la respuesta sólo aquellas partes del mensaje a las que está<br>
respondiendo.<br>
<br>
<br>
Asuntos del día:<br>
<br>
   1. Re: Duda WinAPI (luis alfonso jimenez mejia)<br>
   2. videoconferencia sobre api de windows 32<br>
      (luis alfonso jimenez mejia)<br>
   3. Re: ahorcado, (luis alfonso jimenez mejia)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Tue, 23 Nov 2010 13:44:55 -0300<br>
From: luis alfonso jimenez mejia <<a href="mailto:viejolajimenez@gmail.com">viejolajimenez@gmail.com</a>><br>
To: "Lista de correo sobre C y C++" <<a href="mailto:cconclase@listas.conclase.net">cconclase@listas.conclase.net</a>><br>
Subject: Re: [C con Clase] Duda WinAPI<br>
Message-ID:<br>
        <<a href="mailto:AANLkTikgLk%2B4WKf-LL6AJBPHJu6pE7SpR-Se-tdgcBTt@mail.gmail.com">AANLkTikgLk+4WKf-LL6AJBPHJu6pE7SpR-Se-tdgcBTt@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
le  recomiendo  esta informacion de  seguro  encontrara algo  que le sirva<br>
<a href="http://winapi.conclase.net/curso/index.php" target="_blank">http://winapi.conclase.net/curso/index.php</a><br>
<br>
El 22 de noviembre de 2010 17:02, Salvador Pozo <<a href="mailto:salvador@conclase.net">salvador@conclase.net</a>>escribió:<br>
<br>
> El pasado 2010-11-22 16:38:54, Raúl escribió:<br>
><br>
> R> Buenas!<br>
> R>        Soy nuevo por aquí y no se exactamente como funciona esto. Espero<br>
> que<br>
> R> sea así y podáis resolverme una duda que tengo. Gracias por adelantado.<br>
> R> Mi problema es que quiero mover una ventana ya existente, y parece facil<br>
> con<br>
> R> MoveWindow. Mi pregunta es, como sé la entrada hwnd? Porque quiero mover<br>
> la<br>
> R> ventana en la que esté el ratón en ese momento, no una que ya he creado<br>
> de<br>
> R> la cual sé todo. No se si me explico bien, q ando un poco liado.<br>
><br>
> ¡Uf!<br>
> Así como lo explicas no parece fácil, voy a intentar delimitar un poco el<br>
> problema.<br>
><br>
> ¿Tiene que ser la ventana sobre la que está el ratón, o la ventana activa<br>
> (la que tiene el foco)?<br>
><br>
> Saber si el ratón está sobre una ventana específica es sencillo, pero hay<br>
> que tener en cuenta que las ventanas se superponen, y que el ratón puede<br>
> estar sobre muchas ventanas a la vez.<br>
><br>
> Te copio un pequeño programa que averigua sobre qué ventana están unas<br>
> coordenadas concretas (en este caso 300,300).<br>
><br>
> ----8<------<br>
> // Enlazar con la librería "gdi32"<br>
> #include <windows.h><br>
> #include <wingdi.h><br>
> #include <iostream><br>
><br>
> using namespace std;<br>
><br>
> int main()<br>
> {<br>
>    HWND hwnd;<br>
>    char cad[256];<br>
>    RECT re;<br>
>    POINT p = {300, 300};<br>
>    bool encontrada=false;<br>
><br>
>    hwnd = GetTopWindow(0);<br>
><br>
>    do {<br>
>        if(ERROR != GetWindowRect(hwnd, &re)) {<br>
>            if(PtInRect(&re, p) && IsWindowVisible(hwnd)) {<br>
>                GetWindowText(hwnd, cad, 256);<br>
>                if(strlen(cad)) cout << "(" << re.left << "," << re.top <<<br>
> "," << re.right << "," << re.bottom << ") " << cad << endl;<br>
>                encontrada = true;<br>
>            }<br>
>        }<br>
>    } while(!encontrada && (hwnd = GetNextWindow(hwnd, GW_HWNDNEXT)));<br>
>    return 0;<br>
> }<br>
> ----8<------<br>
><br>
> Con algunas modificaciones (que las coordenadas las proporcione un evento<br>
> del ratón), puedes adaptarlo a tus necesidades.<br>
><br>
> Básicamente lo que hace el programa es obtener el manipulador de la ventana<br>
> "Top", es decir, la que esté más encima, verifica si las coordenadas están<br>
> en el rectángulo de la ventana y si la ventana es visible.<br>
><br>
> Si es así, hemos encontrado la ventana que buscábamos.<br>
><br>
> Si no es así, buscamos la siguiente ventana según el orden Z. Windows<br>
> mantiene una lista de ventanas, o más bien un árbol. En este caso sólo nos<br>
> interesan las TOP windows, es decir, las que corresponden con aplicaciones o<br>
> programas ejecutables. Hay otros órdenes, por ejemplo, las ventanas hijas de<br>
> cada una de ellas.<br>
><br>
> Espero que te sirva.<br>
><br>
> Hasta pronto.<br>
><br>
> --<br>
> Salvador Pozo (Administrador)<br>
> mailto:<a href="mailto:salvador@conclase.net">salvador@conclase.net</a><br>
> _______________________________________________<br>
> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
> Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
><br>
------------ próxima parte ------------<br>
Se ha borrado un adjunto en formato HTML...<br>
URL: <<a href="http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/41c657cb/attachment-0001.html" target="_blank">http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/41c657cb/attachment-0001.html</a>><br>

<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Tue, 23 Nov 2010 13:55:23 -0300<br>
From: luis alfonso jimenez mejia <<a href="mailto:viejolajimenez@gmail.com">viejolajimenez@gmail.com</a>><br>
To: <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
Subject: [C con Clase] videoconferencia sobre api de windows 32<br>
Message-ID:<br>
        <AANLkTi=ugF=<a href="mailto:BMgPuDzzfRtDBWHy_OH2EBjAksMqtC7cR@mail.gmail.com">BMgPuDzzfRtDBWHy_OH2EBjAksMqtC7cR@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
este  software  del  skype  con sus  pantyalla compartidas  me parece<br>
fabulosos  para  la  videoconferencias , la idea  es  crear  unba<br>
videoconferencia  sobre  api de  windows o cosas  asi por  el eestilo mi<br>
usuario skype  es *luis.jimenez1982* , por  favor  no  soy  un experto  pero<br>
espero que  alguien  se  sume  ala inicativa para poder  intercambiar<br>
informacion en tiempo real<br>
------------ próxima parte ------------<br>
Se ha borrado un adjunto en formato HTML...<br>
URL: <<a href="http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/15dee050/attachment.html" target="_blank">http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/15dee050/attachment.html</a>><br>

<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Tue, 23 Nov 2010 14:29:17 -0300<br>
From: luis alfonso jimenez mejia <<a href="mailto:viejolajimenez@gmail.com">viejolajimenez@gmail.com</a>><br>
To: "Lista de correo sobre C y C++" <<a href="mailto:cconclase@listas.conclase.net">cconclase@listas.conclase.net</a>><br>
Subject: Re: [C con Clase] ahorcado,<br>
Message-ID:<br>
        <<a href="mailto:AANLkTimTjoA6h1td5JTUX4T_6E_j79rKCWGvHHazsvSL@mail.gmail.com">AANLkTimTjoA6h1td5JTUX4T_6E_j79rKCWGvHHazsvSL@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
ese rogrma  esta  bueno  me  gustaria  discutirlo  un  poco   mas  mi<br>
usuario  skype  es  *luis.jimenez1982 *<br>
<br>
El 23 de noviembre de 2010 10:16, milller ossa<br>
<<a href="mailto:jahve.ossab13@gmail.com">jahve.ossab13@gmail.com</a>>escribió:<br>
<br>
> hola buen dia<br>
><br>
> me dejaron una tarea de realizar el ahoracado , e avanzado algo con ayuda<br>
> de  amigos;<br>
> soy nuevo en el mundo de c++ , asi que no se muy bien algunas cosas ,<br>
> al copilarlo no me sale como deberia , hay dejo el codigo ; si alguien me<br>
> puede dar una manito, muchas gracias de antemano,<br>
><br>
> #include <cstdlib><br>
> #include <iostream><br>
><br>
> using namespace std;<br>
><br>
> int main(int argc, char *argv[])<br>
> {<br>
>    char palabradusuario[5];<br>
>    int categoria;<br>
>    int dep;<br>
>    int pais;<br>
>    int ast;<br>
><br>
>    cout << "                                                            "<<<br>
> endl;<br>
>    cout << " 00000000 00  00 000000 000000 000000 000000 000000   000000"<<<br>
> endl;<br>
>    cout << " 00    00 00  00 00  00 00  00 00     00  00 00   00  00  00"<<<br>
> endl;<br>
>    cout << " 00    00 00  00 00  00 00  00 00     00  00 00    00 00  00"<<<br>
> endl;<br>
>    cout << " 00000000 000000 00  00 000000 00     000000 00    00 00  00"<<<br>
> endl;<br>
>    cout << " 00    00 00  00 00  00 00 00  00     00  00 00   00  00  00"<<<br>
> endl;<br>
>    cout << " 00    00 00  00 000000 00  00 000000 00  00 000000   000000"<<<br>
> endl;<br>
>    cout << "<br>
> "<< endl;<br>
>    cout << "<br>
> "<< endl;<br>
>    cout << "!!!PREPARADO PARA JUGAR???"<<endl;<br>
>    cout << "<br>
> "<< endl;<br>
><br>
>    cout << "Escoja una categoria:" << endl;<br>
>    cout << " 1 :Deportes"<< endl;<br>
>    cout << " 2 :Paises"<< endl;<br>
>    cout << " 3 :Astronomia"<< endl;<br>
>    cin>> categoria;<br>
><br>
>    switch (categoria)<br>
>    {<br>
>           case 1:<br>
>             cout<<"Usted a escojido Deportes:"<<endl;<br>
>             cout<<"Escoja una palabra de 1 a 10:"<<endl;<br>
>             cin>> dep;<br>
><br>
>               {switch (dep)<br>
>                 {case 1:strcpy (palabradusuario, "tenis");<br>
>               cout<<"usted ha escojido una palabra de 5 oportunidades";<br>
>               break;<br>
><br>
>               case 2: strcpy (palabradusuario, "baseball");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 3: strcpy (palabradusuario, "baloncesto");<br>
>               cout<<"usted ha escojido una palabra de 10 oportunidades";<br>
>               break;<br>
><br>
>               case 4: strcpy (palabradusuario, "futbol");<br>
>               cout<<"usted ha escojido una palabra de 6 oportunidades";<br>
>               break;<br>
><br>
>               case 6: strcpy (palabradusuario, "pingpong");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 7: strcpy (palabradusuario, "microfutbol");<br>
>               cout<<"usted ha escojido una palabra de 11 oportunidades";<br>
>               break;<br>
><br>
>               case 8: strcpy (palabradusuario, "voleyball");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 9: strcpy (palabradusuario, "atletismo");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 10: strcpy (palabradusuario, "boxeo");<br>
>               cout<<"usted ha escojido una palabra de 5 oportunidades";<br>
>               break;<br>
>             break;}}<br>
><br>
>        {<br>
>             case 2:<br>
>             cout<<"Usted a escojido Paises del Mundo:"<<endl;<br>
>             cout<<"Escoja una palabra de 1 a 10:"<<endl;<br>
>             cin>> pais;<br>
>             switch (pais)<br>
>               {case 1:strcpy (palabradusuario, "brasil");<br>
>               cout<<"usted ha escojido una palabra de 6 oportunidades";<br>
>               break;<br>
><br>
>               case 2: strcpy (palabradusuario, "colombia");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 3: strcpy (palabradusuario, "baloncesto");<br>
>               cout<<"usted ha escojido una palabra de 10 oportunidades";<br>
>               break;<br>
><br>
>               case 4: strcpy (palabradusuario, "futbol");<br>
>               cout<<"usted ha escojido una palabra de 6 oportunidades";<br>
>               break;<br>
><br>
>               case 6: strcpy (palabradusuario, "pingpong");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 7: strcpy (palabradusuario, "microfutbol");<br>
>               cout<<"usted ha escojido una palabra de 11 oportunidades";<br>
>               break;<br>
><br>
>               case 8: strcpy (palabradusuario, "voleyball");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 9: strcpy (palabradusuario, "atletismo");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 10: strcpy (palabradusuario, "boxeo");<br>
>               cout<<"usted ha escojido una palabra de 5 oportunidades";<br>
>               break;<br>
>               }<br>
>               break;<br>
>               }<br>
><br>
><br>
>          case 3:<br>
>               cout<<"Usted a escojido Astronomia:"<<endl;<br>
>               cout<<"Escoja una palabra de 1 a 10:"<<endl;<br>
>               cin>> ast;<br>
>               switch (ast)<br>
>               {case 1:strcpy (palabradusuario, "tenis");<br>
>               cout<<"usted ha escojido una palabra de 5 oportunidades";<br>
>               break;<br>
><br>
>               case 2: strcpy (palabradusuario, "baseball");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 3: strcpy (palabradusuario, "baloncesto");<br>
>               cout<<"usted ha escojido una palabra de 10 oportunidades";<br>
>               break;<br>
><br>
>               case 4: strcpy (palabradusuario, "futbol");<br>
>               cout<<"usted ha escojido una palabra de 6 oportunidades";<br>
>               break;<br>
><br>
>               case 6: strcpy (palabradusuario, "pingpong");<br>
>               cout<<"usted ha escojido una palabra de 8 oportunidades";<br>
>               break;<br>
><br>
>               case 7: strcpy (palabradusuario, "microfutbol");<br>
>               cout<<"usted ha escojido una palabra de 11 oportunidades";<br>
>               break;<br>
><br>
>               case 8: strcpy (palabradusuario, "voleyball");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 9: strcpy (palabradusuario, "atletismo");<br>
>               cout<<"usted ha escojido una palabra de 9 oportunidades";<br>
>               break;<br>
><br>
>               case 10: strcpy (palabradusuario, "boxeo");<br>
>               cout<<"usted ha escojido una palabra de 5 oportunidades";<br>
>               break;<br>
>               }}<br>
><br>
>    char acertadas[20];<br>
>    strcpy (acertadas, palabradusuario);<br>
>    int largo = strlen (palabradusuario);<br>
>    for (char* ap = palabradusuario; *ap; ap++)<br>
>       cout << '_';<br>
>    cout << endl;<br>
>    int errores = 0, acierto;<br>
>    for (;;) {<br>
>        cout << "Escribe una letra que pienses que es parte de la palabra:<br>
> ";<br>
>        char letra;<br>
>        cin >> letra;<br>
>        char* ap;<br>
>        int acierto = 0;<br>
>        for (ap = acertadas; *ap; ap++)<br>
>            if (*ap == letra) {<br>
>               *ap = '_';<br>
>               acierto = 1;<br>
>            }<br>
>        if (!acierto) {<br>
>           if (++errores 0 >= strlen (palabradusuario)) {<br>
>              cout << "Demasiados errores!!!" << endl;<br>
>              break;<br>
>           } else<br>
>             cout << "Error!!! solo te quedan " << strlen (palabradusuario)<br>
> - errores << " oportunidades" << endl;<br>
>        } else {<br>
>           acierto = 0;<br>
>           for (int i = 0; palabradusuario[i]; i++)<br>
>              if (palabradusuario[i] != acertadas[i])<br>
>                 cout << palabradusuario[i];<br>
>              else {<br>
>                 cout << '_';<br>
>                 acierto = 1;<br>
>              }<br>
>           cout << endl;<br>
>           if (!acierto) {<br>
>              cout << "\tFelicidades!!! has ganado.\n";<br>
>              break;<br>
>           }<br>
>        }<br>
>    }<br>
><br>
>    system("PAUSE");<br>
>    return EXIT_SUCCESS;<br>
> }<br>
><br>
><br>
> _______________________________________________<br>
> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
> Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
><br>
------------ próxima parte ------------<br>
Se ha borrado un adjunto en formato HTML...<br>
URL: <<a href="http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/d4a1972f/attachment.html" target="_blank">http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101123/d4a1972f/attachment.html</a>><br>

<br>
------------------------------<br>
<br>
_______________________________________________<br>
Cconclase mailing list<br>
<a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
<br>
<br>
Fin de Resumen de Cconclase, Vol 54, Envío 36<br>
*********************************************<br>
</blockquote></div><br>