[SOLUCIONADO] ¿Cómo añadir dos botones al formulario?

Iniciado por Meta, 7 Abril 2018, 17:49 PM

0 Miembros y 3 Visitantes están viendo este tema.

Meta

Hola:

He creado un formulario con Windows Form (Win32). Quiero añadir en él dos botones. Por ahora he hecho esto.

Paso 1:


Paso 2:


Pado 3:


Se me genera códigos pero no se ve el formulario. Lo que demuestra se un engorro programar así hoy en día, pero hay empresas que si programan así y enseñan en algunas universidades les gusten a los alumnos o no.

Paso 4:


Aquí lo dejo el formulario como si fuese por defeto 300x300 pero en realidad es muy grande para mi gusto.

Quiero hacer dos cosas. Poner el tamaño del formulario a 300 x 300 y introducir 2 botones. Quiero hacer.

Un botón se llama: Abrir y el otro Cerrar.

¿Cómo se hace?

Saludos.

PD: La verdad, no sabía que fuera tan coñazo, pesado, complicado en hacer lo que estoy pidiendo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

ivancea96


Meta

Vuelve a cargar la página para que se vean las imágenes, son 4, cada paso una captura.

Si no se ve nada por mucho que hagas, me avisas y lo subo en otro lado.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

ivancea96

Bueno, ocurre que los links de Microsoft a veces pasan primero por una web de selección de cuenta Microsoft, por lo que no e veía la imagen.

Por lo demás, probablemente te interesa más buscar un proyecto de ejemplo con lo que dices. Los controles con WinApi son bastante diferentes a con C# y otros frameworks.
https://msdn.microsoft.com/en-us/library/windows/desktop/hh298354%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Meta

Buenas:

Me alegro que ya se pueda ver als capturas de pantalla.

En todo el proyecto he encontrado el código para redimensionar la ventana aquí.

Código (cpp) [Seleccionar]
   HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);


Pisiste el enlace, pero no se parece nada para modificar las coordenadas X, Y, así pongo los valores a 300 x 300.

Dios mio, si que es complicado el santo formulario con el Win32. ;)

En el ejemplo que diste:
Código (cpp) [Seleccionar]
HWND hwndButton = CreateWindow(
    L"BUTTON",  // Predefined class; Unicode assumed
    L"OK",      // Button text
    WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // Styles
    10,         // x position
    10,         // y position
    100,        // Button width
    100,        // Button height
    m_hwnd,     // Parent window
    NULL,       // No menu.
    (HINSTANCE)GetWindowLong(m_hwnd, GWL_HINSTANCE),
    NULL);      // Pointer not needed.


Es todo un reto.

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

BloodSharp

Cita de: Meta en  7 Abril 2018, 18:46 PMDios mio, si que es complicado el santo formulario con el Win32. ;)

Es todo un reto.

Si querés algo equivalente en C/C++ de C# o VB.NET tendrías que crear el proyecto con la opción de CLR que se vé en la primera imagen...


B#



Meta

CLR es .net. Estoy haciendo pruebas con Win32, C++ nativo. ;)
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

ivancea96

Cita de: Meta en  7 Abril 2018, 18:46 PM
Buenas:

Me alegro que ya se pueda ver als capturas de pantalla.

En todo el proyecto he encontrado el código para redimensionar la ventana aquí.

Código (cpp) [Seleccionar]
   HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);


Pisiste el enlace, pero no se parece nada para modificar las coordenadas X, Y, así pongo los valores a 300 x 300.

Dios mio, si que es complicado el santo formulario con el Win32. ;)

En el ejemplo que diste:
Código (cpp) [Seleccionar]
HWND hwndButton = CreateWindow(
    L"BUTTON",  // Predefined class; Unicode assumed
    L"OK",      // Button text
    WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // Styles
    10,         // x position
    10,         // y position
    100,        // Button width
    100,        // Button height
    m_hwnd,     // Parent window
    NULL,       // No menu.
    (HINSTANCE)GetWindowLong(m_hwnd, GWL_HINSTANCE),
    NULL);      // Pointer not needed.


Es todo un reto.

Saludos.

Más que complicado, es un workflow diferente, además de no orientado a objetos. Fíjate en la función CreateWindow y sus parámetros en MSDN, son muchos parámetros porque son muchas opciones, pero nada más.

Meta

Buenas:

Código (cpp) [Seleccionar]
HWND hwndButton = CreateWindow(
    L"BUTTON",  // Predefined class; Unicode assumed
    L"OK",      // Button text
    WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // Styles
    10,         // x position
    10,         // y position
    100,        // Button width
    100,        // Button height
    m_hwnd,     // Parent window
    NULL,       // No menu.
    (HINSTANCE)GetWindowLong(m_hwnd, GWL_HINSTANCE),
    NULL);      // Pointer not needed.


Código (cpp) [Seleccionar]
   HWND hWnd = CreateWindowW(
   szWindowClass,
   szTitle,
   WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT,
   0,
   CW_USEDEFAULT,
   0,
   nullptr,
   nullptr,
   hInstance,
   nullptr);


Ahora mismo averiguando poner el formulario al tamaño de 300 x 300 que no logro ni para atrás.

Código (cpp) [Seleccionar]
   HWND hWnd = CreateWindowW(
   szWindowClass,
   szTitle,
   WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT,
   0,
   CW_USEDEFAULT,
   0,
   nullptr,
   nullptr,
   hInstance,
   nullptr);
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/