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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19
91  Programación / Programación C/C++ / Re: Iconos en botones (Win API) en: 17 Septiembre 2011, 11:54 am
TODO está en la MSDN pero te ayudo con lo siguiente para ponerle un icono a un botón tienes que usar el mensaje BM_SETIMAGE:

Código
  1. SendMessage(boton1, BM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)hIcon1);
  2.  
  3.  

http://msdn.microsoft.com/en-us/library/bb761822(v=vs.85).aspx

Muchas gracias, era exactamente lo que buscaba.

Aclaro un pequeño punto que no sale en la MSDN por si alguien ojea este tema: BM_SETIMAGE no funciona en Windows XP sino añades BS_ICON o BS_BITMAP al definir el botón/edit/static/etcétera. Un ejemplo:

Código
  1. case WM_CREATE:
  2. {
  3. //Esto funcionaría en W7 pero no en XP
  4. boton1 = CreateWindow ("Button", NULL, WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 90, 40, 25, hwnd, (HMENU) ID_BOTON1, estancia, 0);
  5. SendMessage(boton1, BM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)hIcon1);
  6. break;
  7. }

Código
  1. case WM_CREATE:
  2. {
  3. //Ahora lo reconoce el Windows XP
  4. boton1 = CreateWindow ("Button", NULL, BS_ICON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 90, 40, 25, hwnd, (HMENU) ID_BOTON1, estancia, 0);
  5. SendMessage(boton1, BM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)hIcon1);
  6. break;
  7. }

En caso de que sea una imagen en vez de BS_ICON hay que usar BS_BITMAP.

Saludos.
92  Programación / Programación C/C++ / Re: Iconos en botones (Win API) en: 16 Septiembre 2011, 23:49 pm
Pues antes de hacer botones con iconos deberías aprender cómo realmente funciona y se crea una ventana.

http://msdn.microsoft.com/en-us/library/bb384843.aspx
http://winapi.conclase.net/

Gracias por tu tiempo, pero no estoy interesando en volver a dar lo que ya he visto, sé cómo crear una ventana; lo que no comprendo son las funciones que hay en el "main.cpp" de tu ejemplo que no tienen nada que ver con la ventana en si, sino que llaman a funciones de los otros 8 archivos dificultando su comprensión.

La idea es avanzar poco a poco no verme 15 funciones nuevas de golpe repartidas entre 8 archivos.

No te molestes, miraré por otro lado. Suerte.
93  Programación / Programación C/C++ / Re: Iconos en botones (Win API) en: 16 Septiembre 2011, 23:27 pm
¿No entiendes el main.cpp? Tu código me parece que es una plantilla, ¿lo entiendes?

Lo que está comentado en inglés es lo que da como plantilla Code::Blocks, lógicamente no voy a escribir lo básico para programar una ventana cada vez que cree un proyecto para probar funciones y hacer ensayos, en ese caso el código que da Code::Blocks al crear un nuevo proyecto viene a la perfección.

No, no entiendo el main.cpp que va con el source del ejemplo que me has pasado por la sencilla razón de que al ser principiante en Win API la única forma que he visto para crear ventanas es la que viene con Code::Blocks y en los ejemplos básicos de guías y foros; si empieza a crear 39898 archivos para hacer una simple ventana lo normal al ser un principiante, noob o como quieras llamarlo es que no me entere.



¿Tantos archivos para añadirle un ICONO a un BOTÓN?.
94  Programación / Programación C/C++ / Re: Iconos en botones (Win API) en: 16 Septiembre 2011, 22:44 pm

Gracias pero no entiendo muy bien el code; no sé si es que usa una metodología de programación diferente o es que está programado teniendo presente formas de sintaxis más avanzadas, pero apenas comprendo el "main.cpp".

¿No hay ninguna manera menos compleja como la que he posteado?, ¿dónde podría estar el fallo en mi code?, reitero en que hace realtivamente poco que me puse a explorar la API de Windows y aunque sepa usar funciones muy diversas tampo soy un experto.

Saludos.
95  Programación / Programación C/C++ / Re: ALGUIEN TIENE ALGUN MANUAL EN PDF DE LIBRERIA ALLEGRO ACTUALIZADO en: 16 Septiembre 2011, 22:02 pm
Hay bastantes guías por internet pero deberás probar con diversas palabras clave (manual allegro, tutorial allegro, guía allegro...). Aqui tienes un par bastante completos:

http://artemisa.unicauca.edu.co/~wpantoja/web/graficos_gcc/allegro/manual_allegro.pdf
http://www.4shared.com/file/gRwWLaIe/0038.html

Saludos.
96  Programación / Programación C/C++ / Iconos en botones (Win API) en: 16 Septiembre 2011, 21:32 pm
Buenas:

He llegado a un punto en el cual, para mejorar la interfaz de un programa, necesito ponerle iconos a los botones, fondos a los edit o static, etc. He encontrado por internet un par de cosas como la función CreateIcon (que me ha dado 500 errores) y esta otra forma:

Código
  1. #include <windows.h>
  2.  
  3. enum {ID_BOTON1};
  4.  
  5. /*  Declare Windows procedure  */
  6. LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
  7.  
  8. /*  Make the class name into a global variable  */
  9. char szClassName[ ] = "CodeBlocksWindowsApp";
  10.  
  11. HINSTANCE estancia;
  12. HICON hIcon1;
  13. HWND boton1;
  14.  
  15. int WINAPI WinMain (HINSTANCE hThisInstance,
  16.                     HINSTANCE hPrevInstance,
  17.                     LPSTR lpszArgument,
  18.                     int nCmdShow)
  19. {
  20.    HWND hwnd;               /* This is the handle for our window */
  21.    MSG messages;            /* Here messages to the application are saved */
  22.    WNDCLASSEX wincl;        /* Data structure for the windowclass */
  23.  
  24.    estancia = hThisInstance;
  25.  
  26.    /* The Window structure */
  27.    wincl.hInstance = hThisInstance;
  28.    wincl.lpszClassName = szClassName;
  29.    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
  30.    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
  31.    wincl.cbSize = sizeof (WNDCLASSEX);
  32.  
  33.    /* Use default icon and mouse-pointer */
  34.    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
  35.    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  36.    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
  37.  
  38.  
  39.  
  40.    hIcon1 = LoadIcon (estancia, "RAIZ");
  41.  
  42.  
  43.  
  44.    wincl.lpszMenuName = NULL;                 /* No menu */
  45.    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
  46.    wincl.cbWndExtra = 0;                      /* structure or the window instance */
  47.    /* Use Windows's default colour as the background of the window */
  48.    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
  49.  
  50.    /* Register the window class, and if it fails quit the program */
  51.    if (!RegisterClassEx (&wincl))
  52.        return 0;
  53.  
  54.    /* The class is registered, let's create the program*/
  55.    hwnd = CreateWindowEx (
  56.           0,                   /* Extended possibilites for variation */
  57.           szClassName,         /* Classname */
  58.           "Code::Blocks Template Windows App",       /* Title Text */
  59.           WS_OVERLAPPEDWINDOW, /* default window */
  60.           CW_USEDEFAULT,       /* Windows decides the position */
  61.           CW_USEDEFAULT,       /* where the window ends up on the screen */
  62.           544,                 /* The programs width */
  63.           375,                 /* and height in pixels */
  64.           HWND_DESKTOP,        /* The window is a child-window to desktop */
  65.           NULL,                /* No menu */
  66.           hThisInstance,       /* Program Instance handler */
  67.           NULL                 /* No Window Creation data */
  68.           );
  69.  
  70.    /* Make the window visible on the screen */
  71.    ShowWindow (hwnd, nCmdShow);
  72.  
  73.    /* Run the message loop. It will run until GetMessage() returns 0 */
  74.    while (GetMessage (&messages, NULL, 0, 0))
  75.    {
  76.        /* Translate virtual-key messages into character messages */
  77.        TranslateMessage(&messages);
  78.        /* Send message to WindowProcedure */
  79.        DispatchMessage(&messages);
  80.    }
  81.  
  82.    /* The program return-value is 0 - The value that PostQuitMessage() gave */
  83.    return messages.wParam;
  84. }
  85.  
  86.  
  87. /*  This function is called by the Windows function DispatchMessage()  */
  88.  
  89. LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  90. {
  91.    switch (message)                  /* handle the messages */
  92.    {
  93.        case WM_CREATE:
  94.        {
  95.            boton1 = CreateWindow ("Button", NULL, WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 90, 40, 25, hwnd, (HMENU) ID_BOTON1, estancia, 0);
  96.            SendMessage(boton1, WM_SETICON, (WPARAM) hIcon1, true);
  97.            break;
  98.        }
  99.        case WM_DESTROY:
  100.            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
  101.            break;
  102.        default:                      /* for messages that we don't deal with */
  103.            return DefWindowProc (hwnd, message, wParam, lParam);
  104.    }
  105.  
  106.    return 0;
  107. }
  108.  

Archivo de recursos:

Código
  1. RAIZ ICON "raiz.ico"

No me da ningún error y el programa se compila y ejecuta correctamente pero no imprime el icono.
97  Foros Generales / Dudas Generales / Re: Decisión estudiantil en: 15 Septiembre 2011, 22:22 pm
No dejes los estudios, métete en FP grado medio, luego haz grado superior y continúa por la universidad. Si no tienes ninguna pega económica ¿por qué no vas a estudiar algo que te gusta?.

¿Salidas laborales?, hoy en día todo se maneja con ordenadores, tienes muchísimas opciones y posibilidades de encontrar trabajo en diversos campos, puedes trabajar de programador en cualquier compañía, diseñador web, seguridad informática, técnico informático en cualquier empresa y un largo etcétera... y dado el caso de que no encuentres trabajo te puedes sacar la oposición y meterte de profesor en un instituto/universidad (de funcionario el 95% tienen empleo).

Quizá de aqui a que te saques el grado superior cambias de idea y prefieres meterte a otra cosa, entonces tendrías un título de grado superior en tu currículum aparte de lo que hagas posteriormente.

Por supuesto puedes estudiar por tu parte cosas que te interesen y que no des aun en el FP (no sé cuál será el temario); métete en el subforo que te interese, por ejemplo el de C/C++ por lo que has comentado, descárgate unos cuantos libros de la recopilación que hay ahi (Libros/Papers | Videotutoriales de Jesus Conde) y les echas un vistazo, cuando te decantes por uno con el que te entiendas bien ponte a leer y a programar y pregunta en el mismo subforo las dudas que tengas.

Los mejores hackers/programadores del mundo no tienen ningún tipo de carrera o estudios de informática (todo lo que aprendieron fue de forma autodidacta o de otros informáticos), pero tú que tienes la posibilidad de sacarte el título con el que alcanzarás un nivel de conocimiento bastante alto aparte de meterte en el mundo laboral no deberías pensártelo.
98  Programación / Programación C/C++ / Re: libro de c y c++ en: 14 Septiembre 2011, 23:54 pm
En este mismo subforo hay una recopilación de libros C/C++: http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html

Es cuestión de descargarse unos cuantos y ver con cuál te entiendes mejor, sin embargo yo personalmente te recomiendo los videotutoriales de Jesus Conde: http://foro.elhacker.net/programacion_cc/video_tutorial_programacion_c-t249577.0.html

En esos vídeos está todo muy bien explicado y siempre programa varios ejemplos de cada cosa para que no queden dudas. Saludos.
99  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Re: Como puedo imprimir los mensajes escritos de mi celular o transferirlos a mi com en: 13 Septiembre 2011, 16:37 pm
No entiendo mucho de móviles pero si tienes la posbilidad de enviar e-mails puedes mandártelo al correo y luego abrirlo desde el PC.

Saludos.
100  Informática / Hardware / Re: Consejo para comprar portátil en: 13 Septiembre 2011, 12:06 pm
Gracias por comentar.

Con respecto a los PC´s que has linkeado, por lo que he podido ver el primero es bastante mejor que el P. BELL que puse en el primer post y solo cuesta 4 euros más O.o:

                              Acer Travelmate 5760                         PBELL. TS44-HR-232SP
Procesador              Intel i3-2310M                                    Intel i3-2310M
Tarjeta gráfica         NVIDIA GeForce GT540M 1GB              NVIDIA Geforce GT 520M 512MB
RAM                        6GB DDR3                                          4GB DDR3
Pulgadas                 15.6"                                                  15.6"
Disco duro               500GB SATA 5400 rpm                        500 GB HDD
USB                        3 x USB 2.0                                        2 USB 2.0 + 1 USB 3.0
Duración Batería      No lo pone                                          4 Horas
Precio                     474 €                                                  470 €


Lógicamente nos decantamos por el Acer ¿no?.

Le he dado bastantes vueltas al Asus K73SV-TY036V pero de verdad no veo por qué tiene un coste de 611 € si tiene las mismas piezas que el Acer Travelmate 5760; la única diferencia son las pulgadas que tiene 17,3'' (no me interesa tan grande, prefiero uno normal de tamaño) y que posee un puerto USB más, el resto es igual tanto en procesador, tarjeta gráfica, disco duro y demás componentes, incluso tiene 2GB menos de RAM... asi que no llego a ver por qué vale 137 € más.

Del tercero, el ASUS K53E-SX061V, destaca la tarjeta gráfica que tiene una Intel HD Graphics 3000, ahi surje una pequeña duda: ¿es más potente la NVIDIA GeForce GT540M 1GB o la Intel HD Graphics 3000?; perdonad mi ignorancia, no estoy muy metido en el tema del hardware, además el encargado de la tienda APP me recomendó un portátil con Nvidia no otra.

Citar
No te interesaria un Dell? (de lo mejor a lo que podrias apuntar), miraste en la pagina en cuanto a sus ofertas en portatiles?

Si me interesa, estuve mirando la página de DELL pero no llegué a ninguna conclusión, asi que ¿alguna recomendación?.

Gracias de nuevo. Saludos.

PD: De momento de todos los posteados, en relación precio/potencia-de-las-piezas, la mejor opción es el Acer Travelmate 5760 ¿verdad?.
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines