Ayuda creando input box y obteniendo input en un string. Windows Api.

Iniciado por @XSStringManolo, 11 Junio 2019, 07:15 AM

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

@XSStringManolo

Probe de bastantes formas y no lo consigo ni encuentro ejemplos. La ventana textbox va a ser hija de otra ventana. De momento la puse así para ver si la conseguí hacer funcionar pero no hay manera. El programa compila. Asique si no te compila puede que yo tenga algún fallo al escribir el código, porque lo acabo de copiar a mano con el móvil mirando por lo que tengo hecho en el pc.
Lo que quiero es que la ventana me permita escribirle dentro texto. Despues le pondré un boton para enviar el texto. Lo he intentado así pero no funciona. Despues quiero obtener el input del usuario y guardarlo en un string para trabajar con él. De momento tengo esto:

Código (cpp) [Seleccionar]
#include <windows.h>

const char NombreDeClase[] = "LaClaseDeMiVentana";

LRESULT CALLBACK Ventana(HWND hVentana, UINT mensajeVentana, WPARAM wParam, LPARAM lParam)
{
   switch (mensajeVentana)
   {
         case WM_LBUTTONDOWN:
         {
          \\Me gustaria poder escribir en la ventana. No sé como.
         } break;

         case WM_CLOSE:
         {
         DestroyWindow(hVentana);
         } break;

        case WM_DESTROY:
        {
         PostQuitMessage(0);
        } break;

        default:
        {
        return DefWindowProc(hVentana, mensajeVentana, wParam, lParam);
        } break;
   }
return 0;
}

int WINAPI WinMain(HINSTANCE h_instancia, HINSTANCE h_sinUso, LPSTR p_cmd, int n_CmdShow)
{
WNDCLASSEX ClaseVentana;
HWND hVentana;
MSG MensajeVentana;

ClaseVentana.cbSize = sizeof(WNDCLASSEX);
ClaseVentana.style = 0;
ClaseVentana.lpfnWndProc = Ventana;
ClaseVentana.cbClsExtra= 0;
ClaseVentana.cbWndExtra = 0;
ClaseVentana.hInstance = h_instancia;
ClaseVentana.hIcon = LoadIcon(NULL, IDI_APPLICATION);
ClaseVentana.hCursor = LoadCursor(NULL, IDC_ARROW);
ClaseVentana.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
ClaseVentana.lpszMenuName = NULL;
ClaseVentana.lpszClassName = NombreDeClase;
ClaseVentana.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

   if ( !RegisterClassEx(&ClaseVentana) )
   {
   MessageBox(NULL, "Error Al Registrar \"ClaseVentana\"", "ERROR", MB_ICONEXCLAMATION | MB_OK);
   return 0;
   }

char* linea;

hVentana = CreateWindowEx(
WS_EX_CLIENTEDGE,
NombreDeClase,
"Titulo textbox",
WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
CW_USEDEFAULT, CW_USEDEFAULT, 200, 48,
NULL. NULL. h_instancia, NULL);

char szInput[MAX_PATH];

GetDlgItemText(hVentana,123, linea, 100);
GetWindowText(GetDlgItem(hVentana, 101), szInput, MAX_PATH);

  if (hVentana == NULL)
   {
   MessageBox(NULL, "Error Al Crear La Ventana", "ERROR", MB_ICONEXCLAMATION | MB_OK);
   return 0;
   }

ShowWindow(hVentana, n_CmdShow),
UpdateWindow(hVentana);

   while ( GetMessage(&MensajeVentana, NULL, 0, 0) > 0 )
   {
    TranslateMessage(&MensajeVentana);
    DispatchMessage(&MensajeVentana);
    }

return MensajeVentana.wParam;
}

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

@XSStringManolo

Joer, pues mira que me maté a buscar!
Muchísimas gracias!


Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón