C/Visual C - MDI

 
Vista:

MDI

Publicado por demis (17 intervenciones) el 12/01/2002 07:24:31
Como acceder al nombre o titulo de una ventana, supongamos que sea un edtor de texto, como yo puedo acceder el nombre las ventanas, siendo mdi gracias
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

Acceso al título de ventanas MDI en un editor de texto

Publicado por Alejandro (883 intervenciones) el 29/10/2024 20:33:54
Demis, para acceder al nombre o título de una ventana en un entorno MDI (Interfaz de Documento Múltiple) en Windows, puedes utilizar la API de Windows. A continuación, te muestro cómo hacerlo.

Pasos para acceder al título de ventanas MDI



1. Obtener el handle de la ventana MDI: Necesitas obtener el handle (HWND) de la ventana MDI principal.

2. Enumerar las ventanas hijas: Utiliza la función `EnumChildWindows` para enumerar las ventanas hijas (las ventanas MDI).

3. Obtener el título de cada ventana: Para cada ventana hija, puedes usar `GetWindowText` para obtener el título.

Ejemplo de código



Aquí tienes un ejemplo de cómo hacerlo en C utilizando la API de Windows:

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
#include <windows.h>
#include <stdio.h>
 
// Función de callback para enumerar las ventanas hijas
BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) {
    char title[256];
    GetWindowText(hwndChild, title, sizeof(title)); // Obtener el título de la ventana
 
    // Imprimir el título de la ventana
    printf("Título de la ventana hija: %s\n", title);
    return TRUE; // Continuar enumerando
}
 
void ObtenerTitulosVentanasMDI(HWND hwndMDI) {
    // Enumerar las ventanas hijas de la ventana MDI
    EnumChildWindows(hwndMDI, EnumChildProc, 0);
}
 
int main() {
    // Suponiendo que tienes el HWND de la ventana MDI principal
    HWND hwndMDI = FindWindow("MDIParentClassName", NULL); // Reemplaza con el nombre de clase correcto
 
    if (hwndMDI) {
        ObtenerTitulosVentanasMDI(hwndMDI);
    } else {
        printf("No se encontró la ventana MDI.\n");
    }
 
    return 0;
}

Explicación del código



1. EnumChildProc: Esta es la función de callback que se llama para cada ventana hija. Utiliza `GetWindowText` para obtener el título de la ventana y lo imprime.

2. ObtenerTitulosVentanasMDI: Esta función llama a `EnumChildWindows`, que enumera todas las ventanas hijas de la ventana MDI.

3. main: Aquí se obtiene el handle de la ventana MDI principal utilizando `FindWindow`. Debes reemplazar `"MDIParentClassName"` con el nombre de clase correcto de tu ventana MDI.

Notas adicionales



- Nombre de clase: Para obtener el nombre de clase de la ventana MDI, puedes usar herramientas como Spy++ o Inspect de Windows SDK.
- Permisos: Asegúrate de que tu aplicación tenga los permisos necesarios para acceder a las ventanas de otras aplicaciones, si es necesario.
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