• Domingo 22 de Diciembre de 2024, 19:48

Autor Tema:  Aplicacion Completa  (Leído 1824 veces)

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Aplicacion Completa
« en: Sábado 7 de Mayo de 2005, 21:33 »
0
Hola...


Bueno sucede que he realizado el curso completo de C++ Con Clase y pues era el de la seccion de programacion WINAPI32, el punto es, que con ello aprendi a realizar aplicaciones con la WINAPI pero note que todos los objetos de los formularios en realidad se ponen sobre Dialogos y la pantalla principal nada, mi pregunta es como poner estos objetos sobre el Dispocitivo (El area de mi ventana) para realizar la implementacion de mi entorno grafico gracias.


un saludo..


es que siempre lkas he hecho el ide de Visual C++ y pus nunca he tenido la necesidad de crear mas de una ventana a no ser de que requeria una dialogo.
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Aplicacion Completa
« Respuesta #1 en: Lunes 9 de Mayo de 2005, 22:36 »
0
Con "objetos" ¿te refieres a los controles como botones, radiobutton, checkbox, etc? Si quieres ponerlos en tu ventana principal tienes que usar la función CreateWindow con el tipo de control apropiado. Generalmente la llamas en el mensaje WM_CREATE. Charles Petzold ha sacado varios libros para programar en Windows y ahí pone ejemplos sencillos de cómo hacer esto. Yo compré hace años uno de ellos llamado "Programación en Windows 95", el cual incluía un CD con los ejemplos. Si te interesa te puedo poner en este foro, tal como te estoy poniendo este mensaje, el programa de ejemplo.

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Aplicacion Completa
« Respuesta #2 en: Sábado 14 de Mayo de 2005, 17:24 »
0
:D jeje, pero que tonto soy, ese libor me lo lei hace un tiempo pero como apenas era un principiante en el mundo de los sistemas ya no lo recordaba, ademas el libro no era mio.


 :P bien ahora si me encantaria poder observar el ejemplo que el puso en su libro por que a mi me aburrio en ese entonces el capitulo tan largo sobre dibujo en las areas windows HDC y todo eso jeje.

te agradeceria muchisimo que me Colocaras el ejemplo aqui aun cuando ya mismo voy a donde san google por respuestas sobre el evento.

 :comp:  gracias...
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Aplicacion Completa
« Respuesta #3 en: Sábado 14 de Mayo de 2005, 20:04 »
0
Aquí te pongo el ejemplo, es de botones, también hay otro donde manejan barras deslizantes con colores y otro de controles de edición por si te interesan. Hasta luego y suerte
Código: Text
  1.  
  2. /*----------------------------------------
  3.    VERBOTON.C -- Programa Ver Botones
  4.                  (c) Charles Petzold, 1996
  5.   ----------------------------------------*/
  6.  
  7. #include <windows.h>
  8.  
  9. struct
  10.      {
  11.      long style&#59;
  12.      char *text&#59;
  13.      }
  14.      button[] =
  15.      {
  16.      BS_PUSHBUTTON,      "PUSHBUTTON",
  17.      BS_DEFPUSHBUTTON,   "DEFPUSHBUTTON",
  18.      BS_CHECKBOX,        "CHECKBOX",
  19.      BS_AUTOCHECKBOX,    "AUTOCHECKBOX",
  20.      BS_RADIOBUTTON,     "RADIOBUTTON",
  21.      BS_3STATE,          "3STATE",
  22.      BS_AUTO3STATE,      "AUTO3STATE",
  23.      BS_GROUPBOX,        "GROUPBOX",
  24.      BS_AUTORADIOBUTTON, "AUTORADIO",
  25.      BS_OWNERDRAW,       "OWNERDRAW"
  26.      }&#59;
  27.  
  28. #define NUM (sizeof button / sizeof button[0])
  29.  
  30. LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM)&#59;
  31.  
  32. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  33.                     PSTR szCmdLine, int iCmdShow)
  34.      {
  35.      static char szAppName[] = "VerBoton"&#59;
  36.      HWND        hwnd&#59;
  37.      MSG         msg&#59;
  38.      WNDCLASSEX  wndclass&#59;
  39.  
  40.      wndclass.cbSize        = sizeof (wndclass)&#59;
  41.      wndclass.style         = CS_HREDRAW | CS_VREDRAW&#59;
  42.      wndclass.lpfnWndProc   = WndProc&#59;
  43.      wndclass.cbClsExtra    = 0&#59;
  44.      wndclass.cbWndExtra    = 0&#59;
  45.      wndclass.hInstance     = hInstance&#59;
  46.      wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION)&#59;
  47.      wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW)&#59;
  48.      wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH)&#59;
  49.      wndclass.lpszMenuName  = NULL&#59;
  50.      wndclass.lpszClassName = szAppName&#59;
  51.      wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION)&#59;
  52.  
  53.      RegisterClassEx (&wndclass)&#59;
  54.  
  55.      hwnd = CreateWindow (szAppName, "Ver Botón",
  56.                           WS_OVERLAPPEDWINDOW,
  57.                           CW_USEDEFAULT, CW_USEDEFAULT,
  58.                           CW_USEDEFAULT, CW_USEDEFAULT,
  59.                           NULL, NULL, hInstance, NULL)&#59;
  60.  
  61.      ShowWindow (hwnd, iCmdShow)&#59;
  62.      UpdateWindow (hwnd)&#59;
  63.  
  64.      while (GetMessage (&msg, NULL, 0, 0))
  65.           {
  66.           TranslateMessage (&msg)&#59;
  67.           DispatchMessage (&msg)&#59;
  68.           }
  69.      return msg.wParam&#59;
  70.      }
  71.  
  72. LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
  73.      {
  74.      static char  szTop[]    = "iMsg            wParam       lParam",
  75.                   szUnd[]    = "____            ______       ______",
  76.                   szFormat[] = "%-16s%04X-%04X    %04X-%04X",
  77.                   szBuffer[50]&#59;
  78.      static HWND  hwndButton[NUM]&#59;
  79.      static RECT  rect&#59;
  80.      static int   cxChar, cyChar&#59;
  81.      HDC          hdc&#59;
  82.      PAINTSTRUCT  ps&#59;
  83.      int          i&#59;
  84.      TEXTMETRIC   tm&#59;
  85.  
  86.      switch (iMsg)
  87.           {
  88.           case WM_CREATE :
  89.                hdc = GetDC (hwnd)&#59;
  90.                SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT))&#59;
  91.                GetTextMetrics (hdc, &tm)&#59;
  92.                cxChar = tm.tmAveCharWidth&#59;
  93.                cyChar = tm.tmHeight + tm.tmExternalLeading&#59;
  94.                ReleaseDC (hwnd, hdc)&#59;
  95.  
  96.                for (i = 0&#59; i < NUM&#59; i++)
  97.                     hwndButton[i] = CreateWindow ("button", button[i].text,
  98.                               WS_CHILD | WS_VISIBLE | button[i].style,
  99.                               cxChar, cyChar * (1 + 2 * i),
  100.                               20 * cxChar, 7 * cyChar / 4,
  101.                               hwnd, (HMENU) i,
  102.                               ((LPCREATESTRUCT) lParam) -> hInstance, NULL)&#59;
  103.                return 0&#59;
  104.  
  105.           case WM_SIZE :
  106.                rect.left   = 24 * cxChar&#59;
  107.                rect.top    =  2 * cyChar&#59;
  108.                rect.right  = LOWORD (lParam)&#59;
  109.                rect.bottom = HIWORD (lParam)&#59;
  110.                return 0&#59;
  111.  
  112.           case WM_PAINT :
  113.                InvalidateRect (hwnd, &rect, TRUE)&#59;
  114.  
  115.                hdc = BeginPaint (hwnd, &ps)&#59;
  116.                SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT))&#59;
  117.                SetBkMode (hdc, TRANSPARENT)&#59;
  118.  
  119.                TextOut (hdc, 24 * cxChar, cyChar, szTop, sizeof (szTop) - 1)&#59;
  120.                TextOut (hdc, 24 * cxChar, cyChar, szUnd, sizeof (szUnd) - 1)&#59;
  121.  
  122.                EndPaint (hwnd, &ps)&#59;
  123.                return 0&#59;
  124.  
  125.           case WM_DRAWITEM :
  126.           case WM_COMMAND :
  127.                ScrollWindow (hwnd, 0, -cyChar, &rect, &rect)&#59;
  128.  
  129.                hdc = GetDC (hwnd)&#59;
  130.                SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT))&#59;
  131.  
  132.                TextOut (hdc, 24 * cxChar, cyChar * (rect.bottom / cyChar - 1),
  133.                         szBuffer,
  134.                     wsprintf (szBuffer, szFormat,
  135.                         iMsg == WM_DRAWITEM ? "WM_DRAWITEM" : "WM_COMMAND",
  136.                         HIWORD (wParam), LOWORD (wParam),
  137.                         HIWORD (lParam), LOWORD (lParam)))&#59;
  138.  
  139.                ReleaseDC (hwnd, hdc)&#59;
  140.                ValidateRect (hwnd, &rect)&#59;
  141.  
  142.                break&#59;
  143.  
  144.           case WM_DESTROY :
  145.                PostQuitMessage (0)&#59;
  146.                return 0&#59;
  147.           }
  148.      return DefWindowProc (hwnd, iMsg, wParam, lParam)&#59;
  149.      }
  150.  
  151.  
  152.  

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Aplicacion Completa
« Respuesta #4 en: Lunes 16 de Mayo de 2005, 20:55 »
0
:P  Claro, claro que me interesan entre ms informacion pueda tener muchisimo mejor, oye!. por que mejor no nos vemos en el msn?.

De todas formas te agradezco muchisimo aun cuando yo tambien estoy buscando mas info...
 B)
este es mi msn Snaft_J1@hotmail.com
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte