CreateWindow

O CreateWindow função cria uma sobreposto, pop-up ou janela filho. Especifica a classe de janela, título da janela, janela estilo e (opcionalmente) a posição inicial e tamanho da janela. A função também especifica pai a janela ou proprietário, se houver e o menu da janela.

Para usar estilos estendidos além de estilos com suporte pelo CreateWindow, use o CreateWindowEx função em vez de usar CreateWindow.

(HWND CreateWindow LPCTSTR  Boolean, / / ponteiro para registados o nome de classeLPCTSTRlpWindowName, / / ponteiro para nome da janelaDWORDdwStyle, / / estilo de janelaint x, / / horizontal posição da janela int y, / / vertical posição da janela intnWidth, / / largura da janela intnHeight, / / altura da janelaHWNDhWndParent, / / identificador para janela pai ou proprietárioHMENUhMenu, / / identificador para o identificador menu ou janela filhoLidar comhInstance, / / identificador de instância de aplicativoLPVOIDlpParam / / ponteiro para dados de criação de janela);
 

Parâmetros

boolean
Ponteiro para uma Cadeia de caracteres terminada por caractere nulo ou é um átomo inteiro. Se este parâmetro for um átomo, ele deverá ser um átomo global criado por um chamar anterior para o GlobalAddAtom função. O átomo, de 16-bit valor inferior a 0xC000, devem ser o baixo-palavra de ordem Boolean; o alto palavra ordem deve ser zero.

Se Boolean é uma seqüência de caracteres, ele especifica o nome de classe de janela. O nome de classe pode ser qualquer nome registrado com a função de RegisterClassEx ou qualquer um dos nomes predefinidos de classe de Controlarar. Para obter uma lista completa, consulte a seção Comentários.

lpWindowName
Ponteiro para uma seqüência de caracteres null-terminated que especifica o nome da janela.

Se o estilo janela Especifica uma barra de título, o título janela apontado pelo lpWindowName é exibido na barra de título. Ao usar CreateWindow para criar controles, como botões, caixas de seleção e controles estáticos, use lpWindowName para especificar o texto do controle.

dwStyle
Especifica o estilo da janela que está sendo criado. Este parâmetro pode ser uma combinação dos seguintes estilos janela, além de estilos controle indicaram na seção Comentários.
Estilo Significado
WS_BORDER Cria uma janela que tenha uma borda de linha fina.
WS_CAPTION Cria uma janela que tenha uma barra de título (inclui o estilo WS_BORDER).
ESTILO Cria um janela filho. Esse estilo não pode ser usado com o estilo WS_POPUP.
WS_CHILDWINDOW Mesmo que o estilo de estilo.
WS_CLIPCHILDREN Exclui a área ocupada por janelas filho ao desenho ocorre dentro de janela pai. Esse estilo é usado ao criar a janela pai.
WS_CLIPSIBLINGS Clipes filho windows entre si; ou seja, quando um determinado janela filho recebe um WM_PAINT mensagem, o estilo WS_CLIPSIBLINGS clipes todas as outras janelas filho sobrepostos fora da região do janela filho ser atualizado. Se WS_CLIPSIBLINGS não for especificado e sobreposição janelas filho, é possível, ao desenho dentro a área cliente de uma janela filho, desenhar dentro a área cliente de uma janela filho vizinhos.
WS_DISABLED Cria uma janela que inicialmente está desativada. Uma janela desabilitada não pode receber entrada do usuário.
WS_DLGFRAME Cria uma janela que tenha uma borda de um estilo tipicamente usado com caixas de diálogo. Uma janela com este estilo não pode ter uma barra de título.
WS_GROUP Especifica o primeiro controle de um grupo de controles. O grupo consiste esse controle primeiro e todos os controles definidos depois dela, up to o próximo controle com o estilo WS_GROUP. O primeiro controle em cada grupo geralmente tem o estilo WS_TABSTOP para que o usuário pode mover de grupo para grupo. O usuário pode posteriormente Alterar o foco do teclado de um controle no grupo para o próximo controle no grupo usando as teclas de direção.
WS_HSCROLL Cria uma janela que tenha uma barra de rolagem horizontal.
WS_ICONIC Cria uma janela que inicialmente está minimizada. Mesmo que o estilo WS_MINIMIZE.
WS_MAXIMIZE Cria uma janela que inicialmente está maximizada.
WS_MAXIMIZEBOX Cria uma janela que tenha um botão maximizar. Não pode ser combinado com o estilo WS_EX_CONTEXTHELP. O estilo WS_SYSMENU também deve ser especificado.
WS_MINIMIZE Cria uma janela que inicialmente está minimizada. Mesmo que o estilo WS_ICONIC.
WS_MINIMIZEBOX Cria uma janela que tenha um botão de minimizar. Não pode ser combinado com o estilo WS_EX_CONTEXTHELP. O estilo WS_SYSMENU também deve ser especificado.
WS_OVERLAPPED Cria uma janela sobreposta. Uma janela sobreposta tem uma barra de título e uma borda. Mesmo que o estilo WS_TILED.
WS_OVERLAPPEDWINDOW Cria uma janela sobreposta com os estilos WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX e WS_MAXIMIZEBOX. Mesmo que o estilo WS_TILEDWINDOW.
WS_POPUP Cria uma janela pop-up. Esse estilo não pode ser usado com o estilo estilo.
WS_POPUPWINDOW Cria uma janela pop-up com estilos WS_BORDER, WS_POPUP e WS_SYSMENU. Os estilos WS_CAPTION e WS_POPUPWINDOW devem ser combinados para tornar o menu janela visível.
WS_SIZEBOX Cria uma janela que tenha uma borda de dimensionamento. Mesmo que o estilo WS_THICKFRAME.
WS_SYSMENU Cria uma janela que tem um menu janela no seu barra de título. Também deve ser especificado o estilo WS_CAPTION.
WS_TABSTOP Especifica um Controlarar que pode receber o foco do teclado quando o usuário pressiona a tecla tab. Pressionando a tecla tab altera o foco do teclado para o Avançar Controlarar com o estilo WS_TABSTOP.
WS_THICKFRAME Cria uma janela que tenha uma borda de dimensionamento. Mesmo que o estilo WS_SIZEBOX.
WS_TILED Cria uma janela sobreposta. Uma janela sobreposta tem uma barra de título e uma borda. Mesmo que o estilo WS_OVERLAPPED.
WS_TILEDWINDOW Cria uma janela sobreposta com os estilos WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX e WS_MAXIMIZEBOX. Mesmo que o estilo WS_OVERLAPPEDWINDOW.
WS_VISIBLE Cria uma janela que é inicialmente visível.
WS_VSCROLL Cria uma janela que tenha uma barra de rolagem vertical.

x
Especifica a posição horizontal inicial da janela. Para um sobreposta uma janela pop-up, o parâmetro x é o x inicial-coordenar do canto superior esquerdo da janela, em coordenadas da tela. Para um janela filho, x é o x-coordenar do canto superior esquerdo da janela relativo para o upper-Esquerda canto da área cliente da janela pai.

Se este parâmetro for definido para CW_USEDEFAULT, o sistema seleciona a posição padrão para o canto superior esquerdo da janela e ignora a y parâmetro. CW_USEDEFAULT é válido somente para janelas sobrepostas; se for especificada para uma janela pop-up ou filho janela, o x e y parâmetros são definidos como zero.

y
Especifica a posição vertical inicial da janela. Para um sobreposta uma janela pop-up, o parâmetro y é a y inicial-coordenar do canto superior esquerdo da janela, em coordenadas da tela. Para um janela filho, y é a y inicial-coordenar do canto superior esquerdo da janela filho, relativo para o upper-Esquerda canto da área cliente da janela pai. Para uma caixa de listagem, y é a y inicial-coordenar de upper-Esquerda canto da área de cliente da caixa de listagem relativo para o upper-Esquerda canto da área cliente da janela pai.

Se uma janela sobreposta é criada com o estilo WS_VISIBLE bit definido e o x parâmetro for definido para CW_USEDEFAULT, o sistema ignora a y parâmetro.

nWidth
Especifica a largura, em unidades dispositivo, da janela. Para janelas sobrepostas, nWidth é largura da janela, em coordenadas tela ou CW_USEDEFAULT. Se nWidth é CW_USEDEFAULT, o sistema seleciona uma usar como padrão largura e altura da janela; a largura padrão estende-se desde o x inicial-coordenar para o direito borda da tela, e a altura padrão estende-se desde a y inicial-coordenar para o topo da área de ícone. CW_USEDEFAULT é válido somente para janelas sobrepostas; Se CW_USEDEFAULT for especificada para uma janela pop-up ou janela filho, nWidth e nHeight são definidas como zero.
nHeight
Especifica a altura, em unidades dispositivo, da janela. Para janelas sobrepostas, nHeight é altura da janela, em coordenadas da tela. Se nWidth for definido para CW_USEDEFAULT, o sistema ignora nHeight.
hWndParent
Identificador para a janela pai ou proprietário da janela que está sendo criada. Para criar uma janela filho ou uma janela de proprietário, fornece um válido identificador janela. Este parâmetro é opcional para janelas pop-up.

Windows NT 5.0 e posterior: Para criar uma janela apenas para mensagens, fornecer HWND_MESSAGE ou um identificador para uma janela somente de mensagens existente.

hMenu
Identificador para um menu, ou especifica um filho identificador janela depending on o estilo de janela. Para um sobreposta uma janela pop-up, hMenu identifica o menu a ser usado com a janela; pode ser NULL se o menu de classe é para ser usado. Para um janela filho, hMenu especifica o identificador da janela filho, um valor inteiro usado por um controle de caixa de diálogo para notificar seu pai sobre eventos. O aplicativo determina o identificador da janela filho; Ele deve ser exclusivo para Tudo as janelas filho com a mesma janela de pai.
hInstance
Identificador para a instância do módulo a ser associado com a janela.
lpParam
Um ponteiro para um valor a serem passados para a janela através da estrutura CREATESTRUCT passada na lParam parâmetro da mensagem WM_CREATE . Se um aplicativo chama CreateWindow para criar uma janela de cliente de interface (MDI) documento várias, lpParam deve apontar para uma estrutura CLIENTCREATESTRUCT.

Retornar valores

Se a função for bem-sucedido, o valor de retorno é um identificador para a janela nova.

Se a função falhar, o valor de retorno é NULL. Para informações de erro estendidas get, chamar GetLastError.

Observações

Antes de retornar, CreateWindow envia uma WM_CREATE mensagem para o procedimento janela. Para sobreposto, pop-up e janelas filho, CreateWindow envia o WM_NCCREATE , WM_CREATEe WM_GETMINMAXINFOmensagens para a janela. O lParam parâmetro da mensagem WM_CREATE contém um ponteiro para um CREATESTRUCT estrutura. Se o estilo WS_VISIBLE for especificado, CreateWindow envia a janela Tudo as mensagens necessárias para ativar e mostrar a janela.

Para obter informações sobre como controlar se o barra de tarefas exibe um botão para a janela criada, consulte Visibilidade dos botões da barra de tarefas.

As seguintes classes de controle predefinidos podem ser especificadas in a Boolean parâmetro. Observação que o controle correspondente estilos você pode usar na dwStyle parâmetro.

Classe Significado
BOTÃO Designa uma janela filho retangular pequeno que representa um botão que o usuário pode clique para ativar ou desativar a ele. Controles de botão podem ser usados isoladamente ou em grupos, e que qualquer um podem ser rotulados ou aparecem sem texto. Controles de botão normalmente Alterar aparência quando o usuário clica-los. Para obter mais informações, consulte botões.
Para uma tabela de estilos de botão, que você pode especificar in a dwStyle parâmetro, consulte Estilos de botão.
CAIXA DE COMBINAÇÃO Designa um controle consiste em uma caixa de listagem e um campo de seleção semelhante a um Controlarar de editar. Ao usar esse estilo, um aplicativo deve exibir a caixa de lista em todas as vezes ou habilitar uma caixa de listagem de soltar-para baixo. Se a caixa de lista estiver visível, digitar caracteres para o campo de seleção destaca a primeira entrada de caixa de lista que corresponde aos caracteres digitados. Inversamente, selecionando um item na caixa de lista exibe o texto selecionado no campo de seleção. Para obter mais informações, consulte Caixas de combinação.
Para uma tabela de estilos de caixa de combinação, que você pode especificar in a dwStyle parâmetro, consulte Estilos de caixa de combinação.
EDITAR Designa um janela filho retangular na qual o usuário pode digitar texto no teclado. O usuário seleciona o controle e dá-lhe o foco de teclado clicando nele ou movendo-lo pressionando a tecla tab. O usuário pode texto tipo quando o controle editar exibe um cursor piscando; Use o mouse para mover o cursor, selecionados caracteres a ser substituído, ou posicione o cursor para inserir caracteres; ou use a tecla backspace para excluir caracteres. Para obter mais informações, consulte Editar controles.
Para uma tabela de estilos de Controlarar de editar, que você pode especificar in a dwStyle parâmetro, consulte Estilos de Controlarar de editar.
CAIXA DE LISTAGEM Designa uma lista de seqüências de caracteres. Especifique esse controle sempre que um aplicativo deve apresentar uma lista de nomes, tais como nomes de arquivo, do qual o usuário pode escolher. O usuário pode selecionar uma Cadeia de caracteres clicando nele. Uma Cadeia de caracteres selecionada é realçada e uma mensagem de notificação é passada para o janela pai. Para obter mais informações, consulte Caixas de listagem.
Para uma tabela de estilos de caixa de lista, que você pode especificar in a dwStyle parâmetro, consulte Estilos de caixa de lista.
MDICLIENT Designa um janela cliente MDI. Esta janela recebe mensagens que controlam janelas de filho do aplicativo MDI. Os bits recomendados estilo são WS_CLIPCHILDREN e estilo. Especifica os estilos WS_HSCROLL e WS_VSCROLL para criar um janela cliente MDI que permite ao usuário rolar em Exibir de janelas filho MDI. Para obter mais informações, consulte Interface de documentos múltiplos.
RichEdit Designa um controle de versão 1.0 do Rich Editar. Esta janela permite que o modo de exibição do usuário e editar texto com caractere e parágrafo formatação e pode incluir incorporados objetos. Para obter mais informações, consulte Controles de Rich Editar.
Para uma tabela dos estilos de Controlarar rich Editar, que você pode especificar in a dwStyle parâmetro, consulte Estilos de Controlarar de Editar Rich.
RICHEDIT_CLASS Designa um controle de versão 2.0 Rich Edit. Esta controla deixe o modo de exibição do usuário e editar texto com caractere e parágrafo formatação e pode incluir incorporados objetos. Para obter mais informações, consulte Controles de Rich Editar.
Para uma tabela dos estilos de Controlarar rich Editar, que você pode especificar in a dwStyle parâmetro, consulte Estilos de Controlarar de Editar Rich.
BARRA DE ROLAGEM Designa um retângulo que contém uma caixa de rolagem e tem setas direção em ambas as extremidades. A barra de rolagem envia uma mensagem de notificação para sua janela pai quando o usuário clica no Controlarar. O janela pai é responsável por atualizar a posição do caixa de rolagem, se necessário. Para obter mais informações, consulte As barras de rolagem.
Para uma tabela de estilos de Controlarar de barra de rolagem que você pode especificar in a dwStyle parâmetro, consulte Estilos de Controlarar barra de rolagem.
ESTÁTICO Designa um campo de texto simples, caixa ou retângulo usado para rótulo, caixa ou separar outros controles. Controles estáticos não tomar nenhuma entrada e não fornecem nenhuma saída. Para obter mais informações, consulte Controles estáticos.
Para uma tabela dos estilos de Controlarar estático, que você pode especificar in a dwStyle parâmetro, consulte Estilos de Controlarar estático.

Windows 95:O sistema pode oferecer suporte a um máximo de 16.364 identificadores de janela.

&Notanbsp; Se você especificar 4. x versão de Windows quando vincular seu aplicativo, seus windows não podem ter botões de legenda, a menos que também tenham menus janela. Isso não é um requisito se você especificar 3. x versão de Windows quando vincular seu aplicativo.

Windows CE: CreateWindow é implementado como uma macro. Ele é definido como CreateWindowEx, mas com o dwExStyle parâmetro definido como 0L.

Não há suporte para barras de menus. O hMenu parâmetro deve ser NULL, a menos que ele é usado como um identificador de janela filho.

A classe de janela MDICLIENT não é suportada.

O dwStyle parâmetro pode ser uma combinação dos estilos de janela e estilos de controle documentaram em:

Caixas de diálogo

Windows

Controles

Os seguinte dwStyle os sinalizadores não são com suporte para windows:

WS_CHILDWINDOW WS_ICONIC
WS_MAXIMIZE WS_MAXIMIZEBOX
WS_MINIMIZE WS_MINIMIZEBOX
WS_OVERLAPPEDWINDOW WS_POPUPWINDOW
WS_SIZEBOX WS_THICKFRAME
WS_TILED WS_TILEDWINDOW

Os seguinte dwStyle os sinalizadores não são suportados para controles e caixas de diálogo:

Estilos de botão sem suporte Estilos controle estática sem suporte
BS_LEFTTEXT SS_BLACKFRAME
BS_MULTILINE SS_GRAYFRAME
BS_TEXT SS_METAPICT
BS_USERBUTTON SS_SIMPLE
Estilos de caixa de combinação sem suporte SS_WHITERECT
CBS_OWNERDRAWFIXED SS_BLACKRECT
CBS_OWNERDRAWVARIABLE SS_GRAYRECT
CBS_SIMPLE SS_RIGHTIMAGE
Estilos de Controlarar de caixa de lista não suportados SS_WHITEFRAME
LBS_NODATA Estilos de caixa de diálogo sem suporte
LBS_OWNERDRAWFIXED DS_ABSALIGN
LBS_OWNERDRAWVARIABLE DS_CENTERMOUSE
LBS_STANDARD DS_CONTEXTHELP
Estilos de barra de rolagem não suportado DS_FIXEDSYS
SBS_BOTTOMALIGN DS_NOFAILCREATE
SBS_RIGHTALIGN DS_NOIDLEMSG
SBS_SIZEBOXBOTTOMRIGHTALIGN DS_SYSMODAL
SBS_SIZEGRIPMESMO

Você pode usar o estilo BS_OWNERDRAW como um substituto para o estilo BS_USERBUTTON.

Você pode usar o estilo SS_LEFT ou SS_LEFTNOWORDWRAP instead of o estilo SS_SIMPLE para controles estáticos..

A classe de janela MDICLIENT não é suportada.

Todas as janelas implicitamente têm os estilos WS_CLIPSIBLINGS e WS_CLIPCHILDREN.

Windows CE 1.0 não suporta janelas de propriedade, exceto para as caixas de diálogo. Se o hwndParent parâmetro não é NULL, a janela implicitamente é dado o estilo estilo.

Windows CE versão 1.0 não oferece suporte a barras de menus.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Unicode:Implementado como versões Unicode e ANSI no Windows NT.

Ver também

Visão geral sobre Windows, janela funções, CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindowEx, GlobalAddAtom, RegisterClassEx, WM_COMMAND, WM_CREATE, WM_GETMINMAXINFO, WM_NCCREATE, WM_PAINT

Index