C/Visual C - TextBox y CreateWindow

 
Vista:

TextBox y CreateWindow

Publicado por Germán (9 intervenciones) el 05/06/2003 14:11:29
Hola!, llevo bastante tiempo con esta duda y en ningún foro me lo han resuelto, tengo una variable con la dirección ip y quiero dejar el contenido de esa cadena en un textbox, tan simple como eso en visual basic no soy capaz de hacerlo en visual c++, mi otro problema, es que tengo creadas dos ventanas con CreateWindow y en un momento de la aplicación quiero limpiar el contenido que haya escrito en ellas y no se como hacerlo, muxas gracias de verdad!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Manejo de TextBox y limpieza de contenido en ventanas

Publicado por Alejandro (1286 intervenciones) el 03/07/2025 16:29:20
Para resolver tus dudas sobre cómo manejar un `TextBox` en Visual C++ y cómo limpiar el contenido de las ventanas creadas con `CreateWindow`, aquí tienes una guía paso a paso:

1. Mostrar una dirección IP en un TextBox



Para mostrar el contenido de una cadena (como una dirección IP) en un `TextBox`, primero necesitas asegurarte de que has creado el `TextBox` correctamente. Aquí hay un ejemplo básico de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <windows.h>
#include <string>
 
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    static HWND hTextBox;
 
    switch (uMsg) {
        case WM_CREATE: {
            // Crear un TextBox
            hTextBox = CreateWindowEx(0, "EDIT", "",
                WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,
                10, 10, 200, 25, hwnd, NULL, NULL, NULL);
            break;
        }
        case WM_COMMAND: {
            // Aquí puedes manejar comandos, si es necesario
            break;
        }
        case WM_DESTROY: {
            PostQuitMessage(0);
            break;
        }
        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    return 0;
}
 
void SetIPAddress(HWND hTextBox, const std::string& ipAddress) {
    // Convertir std::string a LPCSTR
    SetWindowTextA(hTextBox, ipAddress.c_str());
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nShowCmd) {
    // Crear la ventana principal
    HWND hwnd = CreateWindowEx(0, "STATIC", "Ejemplo de TextBox",
        WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200,
        NULL, NULL, hInstance, NULL);
 
    ShowWindow(hwnd, nShowCmd);
    UpdateWindow(hwnd);
 
    // Establecer la dirección IP en el TextBox
    SetIPAddress(hTextBox, "192.168.1.1");
 
    // Bucle de mensajes
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}

2. Limpiar el contenido de las ventanas



Para limpiar el contenido de un `TextBox` en una ventana creada con `CreateWindow`, puedes usar la función `SetWindowTextA` y pasarle una cadena vacía. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
void ClearTextBox(HWND hTextBox) {
    SetWindowTextA(hTextBox, ""); // Limpia el contenido del TextBox
}
 
// Llama a ClearTextBox(hTextBox) en el momento que necesites limpiar el contenido

Resumen de pasos:



1. Crear el TextBox: Usa `CreateWindowEx` para crear un `TextBox` en tu ventana.
2. Establecer la dirección IP: Usa `SetWindowTextA` para mostrar la dirección IP en el `TextBox`.
3. Limpiar el contenido: Usa `SetWindowTextA` con una cadena vacía para limpiar el contenido del `TextBox`.

Conclusión



Siguiendo estos pasos, podrás mostrar una dirección IP en un `TextBox` y limpiar el contenido de las ventanas en tu aplicación de Visual C++. ¡Buena suerte con tu proyecto, Germán!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar