CreateWindow

CreateWindow -funksjonen oppretter en overlappet, popup-vindu eller underordnede vinduet. Den angir Vindusklassen, tittel, Vindustype og (valgfritt)-utgangsposisjon og størrelsen på vinduet. Funksjonen angir også vinduets forelder eller eieren, hvis noen, og på Vindu-menyen.

For å bruke utvidede stiler i tillegg til stiler som støttes av CreateWindow, kan du bruke funksjonen CreateWindowEx i stedet for CreateWindow.

() HWND CreateWindow LPCTSTR  lpClassName, / / peker til registrert KlassenavnLPCTSTRlpWindowName, / / peker til vindusnavnetDWORDdwStyle, / / VindustypeInt x, / / vannrette plasseringen av vinduet int y, / / vertikal posisjon-vinduet intnWidth, / / vindusbredde intnHeight, / / VindushøydeHWNDhWndParent, / / håndtere til overordnede eller eier-vinduetHMENUhMenu, / / håndtere til menyen eller undervindu identifikatorHåndterehInstance, / / håndtere til programforekomstenLPVOIDlpParam / / peker til data-vinduet-oppretting);
 

Parametere

lpClassName
Pekeren til en null-terminert streng eller er en heltall-atom. Hvis denne parameteren er en atom, det må være en global atom som er opprettet av et tidligere anrop til de GlobalAddAtom -funksjonen. Atom, en 16-biters verdi mindre enn 0xC000, må være i signifikante ordet av lpClassName; signifikante ordet må være null.

Hvis lpClassName er en streng, angir det vinduet klassenavnet. Klassenavnet kan bli et navn som er registrert med funksjonen RegisterClassEx eller noen av de forhåndsdefinerte Kontrollklasse navnene. En komplett, se under Merknader.

lpWindowName
Pekeren til en null-terminert streng som angir navnet på vinduet.

Hvis vindusstilen angir en tittellinje, vises vindustittelen koblingen leder til lpWindowName i tittellinjen. Når du bruker CreateWindow for å opprette kontroller, for eksempel knapper, avmerkingsbokser og statiske kontroller, kan du bruke lpWindowName til å angi teksten i kontrollen.

dwStyle
Angir stilen til vinduet blir opprettet. Denne parameteren kan være en kombinasjon av følgende vindusstiler, pluss kontroll stilene som er angitt i delen Merknader.
Stil Betydning
WS_BORDER Oppretter et vindu som har en tynn kantlinje.
WS_CAPTION Oppretter et vindu som har en tittellinje (inkluderer WS_BORDER-stil).
WS_CHILD Oppretter et underordnet vindu. Denne stilen kan ikke brukes med WS_POPUP-stil.
WS_CHILDWINDOW Samme som WS_CHILD-stil.
WS_CLIPCHILDREN Utelater området som er okkupert av underordnede vinduer når tegningen oppstår i det overordnede vinduet. Denne stilen som brukes når du oppretter det overordnede vinduet.
WS_CLIPSIBLINGS Klipp underordnede vinduer forhold til hverandre; det vil si når en bestemt undervindu mottar en WM_PAINT -melding, WS_CLIPSIBLINGS-stil maskerer alle andre overlappende underordnede vinduer ut av regionen av det underordnede vinduet oppdateres. Hvis WS_CLIPSIBLINGS ikke er angitt, og underordnede vinduer som overlapper hverandre, er det mulig, når du tegner i klientområdet for et underordnet vindu, til å tegne i klientområdet av en nabokommunene undervindu.
WS_DISABLED Oppretter et vindu som opprinnelig er deaktivert. Et vindu som er deaktivert, kan ikke motta inndata fra brukeren.
WS_DLGFRAME Oppretter et vindu som har en kantlinje på en stil brukes vanligvis sammen med dialogbokser. Et vindu med denne stilen kan ikke ha en tittellinje.
WS_GROUP Angir den første kontrollen av kontrollgruppe. Gruppen består av denne første kontroll og alle kontroller som er definert etter det, opp til neste kontroll med WS_GROUP-stil. Den første kontrollen i hver gruppe har vanligvis stilen WS_TABSTOP slik at brukeren kan flytte fra gruppe til gruppe. Brukeren kan senere endrer tastaturfokus fra en kontroll i gruppen til neste kontroll i gruppen ved hjelp av piltastane.
WS_HSCROLL Oppretter et vindu som har et vannrett rullefelt.
WS_ICONIC Oppretter et vindu som er minimert først. Samme som WS_MINIMIZE-stil.
WS_MAXIMIZE Oppretter et vindu som er maksimert først.
WS_MAXIMIZEBOX Oppretter et vindu som har en Maksimer-knappen. Kan ikke kombineres med WS_EX_CONTEXTHELP-stil. WS_SYSMENU-stil må også angis.
WS_MINIMIZE Oppretter et vindu som er minimert først. Samme som WS_ICONIC-stil.
WS_MINIMIZEBOX Oppretter et vindu som har en Minimer-knapp. Kan ikke kombineres med WS_EX_CONTEXTHELP-stil. WS_SYSMENU-stil må også angis.
WS_OVERLAPPED Oppretter et overlappet vindu. Et overlappet vindu har en tittellinje og en kantlinje. Samme som WS_TILED-stil.
WS_OVERLAPPEDWINDOW Oppretter et overlappet vindu med stilene for WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX og WS_MAXIMIZEBOX. Samme som WS_TILEDWINDOW-stil.
WS_POPUP Oppretter et popup-vindu. Denne stilen kan ikke brukes med WS_CHILD-stil.
WS_POPUPWINDOW Oppretter et popup-vindu med stiler for WS_BORDER, WS_POPUP og WS_SYSMENU. Stilene for WS_CAPTION og WS_POPUPWINDOW må kombineres for å gjøre det synlig på vindusmenyen.
WS_SIZEBOX Oppretter et vindu som har en størrelse kantlinje. Samme som WS_THICKFRAME-stil.
WS_SYSMENU Oppretter et vindu som har en Vindu-menyen på tittellinjen. WS_CAPTION-stil må også angis.
WS_TABSTOP Angir en kontroll som kan motta fokus på tastaturet når brukeren trykker tab-tasten. Trykker tab-tasten, endres fokus på tastaturet til neste kontroll med WS_TABSTOP-stil.
WS_THICKFRAME Oppretter et vindu som har en størrelse kantlinje. Samme som WS_SIZEBOX-stil.
WS_TILED Oppretter et overlappet vindu. Et overlappet vindu har en tittellinje og en kantlinje. Samme som WS_OVERLAPPED-stil.
WS_TILEDWINDOW Oppretter et overlappet vindu med stilene for WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX og WS_MAXIMIZEBOX. Samme som WS_OVERLAPPEDWINDOW-stil.
WS_VISIBLE Oppretter et vindu som er utgangspunktet synlig.
WS_VSCROLL Oppretter et vindu som har et loddrett rullefelt.

x
Angir vannrett utgangsposisjon for vinduet. For en overlappet eller popup-vinduet er x -parameteren opprinnelige x-koordinaten av vinduets øverste venstre hjørne, i skjermkoordinater. For et underordnet vindu er x x-koordinatet til øverste venstre hjørne av vinduet forhold til øverste venstre hjørne av det overordnede vinduet klientområdet.

Hvis denne parameteren settes til CW_USEDEFAULT, velger standardplassering for vinduets øverste venstre hjørne i systemet, og ignorerer y -parameteren. CW_USEDEFAULT er gyldig bare for overlappende vinduer; Hvis den er angitt for er et popup-vindu eller underordnede vinduet, x og y parametere satt til null.

y
Angir loddrett utgangsposisjon for vinduet. For en overlappet eller popup-vinduet er y -parameteren opprinnelige y-koordinat av vinduets øverste venstre hjørne, i skjermkoordinater. For et underordnet vindu er y første y-koordinatet til øverste venstre hjørne av vinduet barn i forhold til øverste venstre hjørne av det overordnede vinduet klientområdet. For en liste er y første y-koordinatet det øverste venstre hjørnet av listens klientområdet forhold til øverste venstre hjørne av det overordnede vinduet klientområdet.

Hvis en overlappet vindu opprettes med bitsettet for WS_VISIBLE-stil, og x -parameteren er satt til CW_USEDEFAULT, ignorerer systemet y -parameteren.

nWidth
Angir bredden i enheten enheter, i vinduet. For overlappende vinduer er nWidth enten vinduets bredde, i skjermkoordinater eller CW_USEDEFAULT. Hvis nWidth er CW_USEDEFAULT, velger systemet en standardbredde og høyde for vinduet; standardbredden strekker seg fra den opprinnelige x-koordinaten til høyre kant av skjermen, og standardhøyden strekker seg fra den første y-koordinaten til toppen av ikonområdet. CW_USEDEFAULT er gyldig bare for overlappende vinduer; Hvis CW_USEDEFAULT er angitt for et popup-vindu eller et underordnet vindu, er nWidth og nHeight satt til null.
nHeight
Angir høyden i enheten enheter, i vinduet. For overlappende vinduer er nHeight vinduets høyde, i skjermkoordinater. Hvis nWidth er satt til CW_USEDEFAULT, ignorerer systemet nHeight.
hWndParent
Håndtere til vinduet overordnede eller eieren av vinduet blir opprettet. Du vil opprette et underordnet vindu eller en eide-vinduet, kan du oppgi en gyldig vindusreferanse. Denne parameteren er valgfri for popup-vinduer.

Windows NT 5.0 og senere: For å opprette en melding bare vindu, kan du angi HWND_MESSAGE eller en referanse til et eksisterende bare melding-vindu.

hMenu
Håndtere på en meny, eller angir et undervindu identifikatoren avhengig av vindusstilen. For en overlappet eller popup-vinduet identifiserer hMenu menyen som skal brukes med vinduet; Det kan være NULL hvis klassen-menyen som skal brukes. Et underordnet vindu angir hMenu undervindu identifikatoren, en heltallsverdi som brukes av en dialog boks for å varsle overordnet om hendelser. Programmet bestemmer undervindu identifikatoren; Det må være unikt for alle underordnede vinduer med det samme overordnede-vinduet.
hInstance
Håndtere til forekomst av modulen som skal knyttes til vinduet.
lpParam
En peker til en verdi som skal sendes til vinduet gjennom strukturen CREATESTRUCT gått i lParam -parameteren WM_CREATE meldingen. Hvis et program samtaler CreateWindow for å opprette flere grensesnitt (MDI) klienten dokumentvinduet, må lpParam peke til en CLIENTCREATESTRUCT struktur.

Returverdier

Hvis funksjonen lykkes, er returverdien en referanse til det nye vinduet.

Hvis funksjonen mislykkes, er verdien som returneres NULL. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.

Merknader

Før retur, sender CreateWindow en WM_CREATE melding i vinduet prosedyren. For overlappes, popup- og underordnede vinduer, sender CreateWindow WM_CREATE, WM_GETMINMAXINFOog WM_NCCREATE -meldinger til vinduet. LParam -parameteren for WM_CREATE meldingen inneholder en peker til en CREATESTRUCT struktur. Hvis stilen WS_VISIBLE er angitt, sender CreateWindow vinduet alle meldinger som kreves for å aktivere, og Vis vinduet.

Du finner mer informasjon på å kontrollere om oppgavelinjen viser en knapp for vinduet opprettet under Synlighet oppgavelinjeknapper.

Du kan angi følgende forhåndsdefinerte kontroll klasser i parameteren lpClassName . Merk den tilsvarende kontrollen stiler du kan bruke i parameteren dwStyle.

Klassen Betydning
KNAPPEN Angir en liten rektangulær underordnet vindu som representerer en knapp som brukeren kan klikke for å slå det av eller på. Knappekontroller kan brukes alene eller i grupper, og de kan enten bli merket eller vises uten tekst. Knappen styrer vanligvis endrer utseende når brukeren klikker dem. Hvis du vil ha mer informasjon, kan du se knapper.
Hvis du vil se en tabell over knappestiler kan du angi i parameteren dwStyle , se Knappestiler.
COMBOBOX Angir en kontroll som består av en liste og en valgfeltet ligner en redigeringskontroll. Når du bruker denne stilen, bør et program vise listen til enhver tid eller aktivere en miste-ned liste. Hvis listen vises, uthever skrive inn tegn i valgfeltet den første liste boksen oppføringen som samsvarer med tegnene som er skrevet inn. Motsatt, hvis du merker et element i listeboksen viser den merkede teksten i valgfeltet. Hvis du vil ha mer informasjon, kan du se Kombinasjonsbokser.
Hvis du vil se en tabell av Boksstiler kombinasjonsboksen, kan du angi i parameteren dwStyle , se Combo Boksstiler.
REDIGER Angir et rektangulært underordnet vindu der brukeren kan skrive inn tekst fra tastaturet. Brukeren velger kontrollen og gir den fokus på tastaturet ved å klikke den eller flytte den ved å trykke tab-tasten. Brukeren kan skrive inn tekst når redigeringskontrollen viser et blinkende cirkumflekstegn; bruke musen til å flytte markøren, velge tegn erstattes, eller Plasser markøren for å sette inn tegn; eller bruke Tilbake-tasten til å slette tegn. Hvis du vil ha mer informasjon, kan du se -Redigeringskontroller.
Finner en tabell med Rediger kontroll stilene du kan angi i dwStyle -parameteren, kan du se Redigere stiler for kontroll.
LISTBOX Angir en liste over tegnstrenger. Angi denne kontrollen hver gang et program må presentere en liste med navn, for eksempel filnavn, som brukeren kan velge. Brukeren kan velge en streng ved å klikke den. En valgte streng er uthevet, og en melding er sendt til det overordnede vinduet. Hvis du vil ha mer informasjon, kan du se Lister.
Hvis du vil se en tabell av Boksstiler listen, kan du angi i parameteren dwStyle , se Boksen listestiler.
MDICLIENT Angir et vindu for MDI-klienten. Dette vinduet mottar meldinger som kontrollerer MDI søknad underordnede vinduer. De anbefalte stil bitene er WS_CLIPCHILDREN og WS_CHILD. Angi WS_HSCROLL og WS_VSCROLL-stiler for å opprette et vindu for MDI-klienten som tillater brukeren å bla underordnede MDI-vinduer i visningen. Hvis du vil ha mer informasjon, kan du se Flere Document Interface.
RichEdit Angir en versjon 1.0 Rich Edit-kontrollen. Dette vinduet lar brukeren-visningen og redigerer tekst med tegn- og avsnittsformatering, og kan inkludere innebygde COM-objekter. Hvis du vil ha mer informasjon, kan du se Rich-redigeringskontroller.
Hvis du vil se en tabell av rich edit-kontrollen stilene du kan angi i parameteren dwStyle , se Rich redigere kontroll stiler.
RICHEDIT_CLASS Angir en versjon 2.0 Rich Edit-kontrollen. Denne kontroller la brukeren visningen og redigerer tekst med tegn- og avsnittsformatering, og kan inkludere innebygde COM-objekter. Hvis du vil ha mer informasjon, kan du se Rich-redigeringskontroller.
Hvis du vil se en tabell av rich edit-kontrollen stilene du kan angi i parameteren dwStyle , se Rich redigere kontroll stiler.
RULLEFELT Angir et rektangel som inneholder en rulleboks og har retningspiler i begge ender. Rullefeltet sender en varslingsmelding til det overordnede vinduet når brukeren klikker kontrollen. Det overordnede vinduet er ansvarlig for å oppdatere plasseringen av rulleboksen, om nødvendig. Hvis du vil ha mer informasjon, kan du se Rullefelt.
Hvis du vil se en tabell av scroll bar kontroll stilene du kan angi i parameteren dwStyle , se Bla Stolpestiler-kontroll.
STATISK Angir en enkel tekst-feltet, boksen eller rektangel som brukes til å merke boksen eller skille andre kontroller. Statiske kontroller tar ingen inndata, og gir ingen utdata. Hvis du vil ha mer informasjon, kan du se Statiske kontroller.
Hvis du vil se en tabell av statisk kontroll-stiler som du kan angi i parameteren dwStyle , se Statisk kontroll-stiler.

Windows 95:Systemet kan støtte maksimalt 16,364 vinduet håndtak.

&Notenbsp; Hvis du angir Windows versjon 4.x når du kobler søknaden, kan ikke vinduene ha bildetekst knapper med mindre de har også vinduet menyer. Dette er ikke et krav hvis du angir Windows versjon 3.x når du kobler programmet.

Windows CE: CreateWindow er implementert som en makro. Det er definert som CreateWindowEx, men med dwExStyle -parameteren angitt til 0 L.

Menylinjer støttes ikke. Parameteren hMenu må være NULL, med mindre det brukes som et underordnet vindu-identifikator.

MDICLIENT Vindusklassen støttes ikke.

DwStyle -parameteren kan være en kombinasjon av vinduet stilene og kontroll stiler som er dokumentert i:

Dialogbokser

Windows

Kontroller

Følgende dwStyle -flagg støttes ikke for 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

Følgende dwStyle -flagg støttes ikke for kontroller og dialogbokser:

Ustøttet knappestiler Statisk kontroll som ikke støttes-stiler
BS_LEFTTEXT SS_BLACKFRAME
BS_MULTILINE SS_GRAYFRAME
BS_TEXT SS_METAPICT
BS_USERBUTTON SS_SIMPLE
Ustøttet combo Boksstiler SS_WHITERECT
CBS_OWNERDRAWFIXED SS_BLACKRECT
CBS_OWNERDRAWVARIABLE SS_GRAYRECT
CBS_SIMPLE SS_RIGHTIMAGE
Ustøttet boksen kontroll listestiler SS_WHITEFRAME
LBS_NODATA Ustøttet dialogboksen Boksstiler
LBS_OWNERDRAWFIXED DS_ABSALIGN
LBS_OWNERDRAWVARIABLE DS_CENTERMOUSE
LBS_STANDARD DS_CONTEXTHELP
Ustøttet Rull Stolpestiler DS_FIXEDSYS
SBS_BOTTOMALIGN DS_NOFAILCREATE
SBS_RIGHTALIGN DS_NOIDLEMSG
SBS_SIZEBOXBOTTOMRIGHTALIGN DS_SYSMODAL
SBS_SIZEGRIP

Du kan bruke BS_OWNERDRAW-stil som en erstatning for BS_USERBUTTON-stil.

Du kan bruke stilen SS_LEFT eller SS_LEFTNOWORDWRAP i stedet for SS_SIMPLE-stil for statiske kontroller..

MDICLIENT Vindusklassen støttes ikke.

Alle windows har implisitt WS_CLIPSIBLINGS og WS_CLIPCHILDREN-stiler.

Windows CE 1.0 støtter ikke eide windows, unntatt for dialogbokser. Hvis ikke hwndParent parameteren er NULL, er vinduet implisitt gitt WS_CHILD-stil.

Windows CE versjon 1.0 støtter ikke menylinjer.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.
Unicode:Implementert som Unicode- og ANSI-versjoner på Windows NT.

Se også

Oversikt over Windows vinduet fungerer, CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindowEx, GlobalAddAtom, RegisterClassEx, WM_COMMAND, WM_CREATE, WM_GETMINMAXINFO, WM_NCCREATE, WM_PAINT

Index