Estructura CREATESTRUCT
Definición
typedef struct tagCREATESTRUCT { // cs LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCTSTR lpszName; LPCTSTR lpszClass; DWORD dwExStyle; } CREATESTRUCT;
La estructura CREATESTRUCT define los parámetros de inicialización pasados al procedimiento ventana de una aplicación.
Descripción
lpCreateParams: puntero a datos a usar para crear una ventana.
Windows NT: este miembro es la dirección de un valor SHORT (16 bits) que especifica el tamaño en bytes delos datos para la creación de la ventana. El valor es seguido a continuación por los datos. Para mayor información, consulta la sección de observaciones.
hInstance: identifica al módulo al que pertenece la nueva ventana.
hMenu: identifica el menú que será usado por la nueva ventana.
hwndParent: identifica la ventana padre, si se trata de una ventana hija. Si la ventana tiene dueño, este miembro identifica a la ventana propietaria. Si no se trata de una ventana hija o con dueño, este miembro es NULL.
cy: especifica la anchura de la ventana en pixels.
cx: especifica la altura de la ventana en pixels.
y: indica la coordenada y de la esquina superior izquierda de la nueva ventana. Si la nueva ventana es una ventana hija, las coordenadas son relativas a la ventana padre. En caso contrario, las coordenadas son relativas al origen de la pantalla.
x: indica la coordenada x de la esquina superior izquierda de la nueva ventana. Si la nueva ventana es una ventana hija, las coordenadas son relativas a la ventana padre. En caso contrario, las coordenadas son relativas al origen de la pantalla.
style: especifica el estilo para la nueva ventana.
lpszName: apunta a una cadena (terminada con cero) que especifica el nombre de la nueva ventana.
lpszClass: apunta a una cadena (terminada con cero) que especifica el nombre de la clase de la nueva ventana.
dwExStyle: especifica el estilo ampliado o extendido de la nueva ventana.
Observaciones
Windows NT: con referencia a l miembro lpCreateParams de la estructura CREATESTRUCT, ya que el puntero puede no estar alineado como DWORD, una aplicación debe acceder a los datos usando un puntero que haya sido declarado usando el tipo UNALIGNED, como se muestra en el siguiente ejemplo:
typedef struct tagMyData { . . .; // definir los datos de creación aquí } MYDATA; typedef struct tagMyDlgData { SHORT cbExtra; MYDATA myData; } MYDLGDATA, UNALIGNED *PMYDLGDATA; PMYDLGDATA pMyDlgdata = (PMYDLGDATA) (((LPCREATESTRUCT) lParam)->lpcreateParams);