CreateWindow

函數(shù)功能:

CreateWindow 函數(shù)創(chuàng)建一個(gè)重疊式窗口献雅、彈出式窗口或子窗口碉考。它指定窗口類(lèi),窗口標(biāo)題挺身,窗口風(fēng)格侯谁,以及窗口的初始位置及大小(可選的)章钾。函數(shù)也指該窗口的父窗口或所屬窗口(如果存在的話(huà))墙贱,及窗口的菜單。

若要使用除 CreateWindow 函數(shù)支持的風(fēng)格外的擴(kuò)展風(fēng)格贱傀,則使用 CreateWindowEx 函數(shù)代替 CreateWindow 函數(shù)惨撇。

API 函數(shù)原型:

注釋?zhuān)篲In_ 說(shuō)明該參數(shù)是輸入的,_opt_ 說(shuō)明該參數(shù)是可選參數(shù)府寒。

HWND WINAPI CreateWindow(

_In_opt_??LPCTSTR lpClassName,? ? // 窗口類(lèi)名稱(chēng)

_In_opt_??LPCTSTR lpWindowName,? ?// 窗口標(biāo)題

_In_? ?? ?DWORD dwStyle,? ?? ?? ? // 窗口風(fēng)格魁衙,或稱(chēng)窗口格式

_In_? ?? ?int x,? ?? ?? ?? ?? ?? ?// 初始 x 坐標(biāo)

_In_? ?? ?int y,? ?? ?? ?? ?? ?? ?// 初始 y 坐標(biāo)

_In_? ?? ?int nWidth,? ?? ?? ?? ? // 初始 x 方向尺寸

_In_? ?? ?int nHeight,? ?? ?? ?? ?// 初始 y 方向尺寸

_In_opt_??HWND hWndParent,? ?? ???// 父窗口句柄

_In_opt_??HMENU hMenu,? ?? ?? ?? ?// 窗口菜單句柄

_In_opt_??HINSTANCE hInstance,? ? // 程序?qū)嵗浔?/p>

_In_opt_??LPVOID lpParam? ?? ?? ? // 創(chuàng)建參數(shù)

);


參數(shù)解析:

參數(shù)含義

lpClassName

1. 窗口類(lèi)名稱(chēng),可以是一個(gè)指向 NULL 結(jié)束的字符串或一個(gè)整型數(shù)值

2. 如果是字符串株搔,它指定了窗口的類(lèi)名剖淀。這個(gè)類(lèi)名可以是任何用函數(shù) RegisterClass 注冊(cè)的類(lèi)名,或是任何預(yù)定義的控制類(lèi)名

3. 如是一個(gè)整型量纤房,它是由此前調(diào)用 theGlobalAddAtom 函數(shù)產(chǎn)生的全局量祷蝌。這個(gè)小于 0xC000 的 16 位數(shù)必須是 lpClassName 參數(shù)字的低 16 位,該參數(shù)的高位必須是 0

lpWindowName

1. 窗口標(biāo)題帆卓,一個(gè)指向 NULL 結(jié)束的字符串指針

2. 如果窗口風(fēng)格指定了標(biāo)題條巨朦,由 lpWindowName 指向的窗口標(biāo)題將顯示在標(biāo)題條上

3. 當(dāng)使用 Createwindow 函數(shù)來(lái)創(chuàng)建控制例如按鈕,選擇框和靜態(tài)控制時(shí)剑令,可使用 lpWindowName 來(lái)指定控制文本

dwStyle

指定創(chuàng)建窗口的風(fēng)格(詳見(jiàn)下方↓)

x:1. 指定窗口的初始水平位置(x 坐標(biāo))

2. 對(duì)一個(gè)層疊或彈出式窗口糊啡,x 參數(shù)是屏幕坐標(biāo)系的窗口的左上角的初始 x 坐標(biāo)

3. 對(duì)于子窗口,x 是子窗口左上角相對(duì)父窗口客戶(hù)區(qū)左上角的初始 x 坐標(biāo)

4. 如果該參數(shù)被設(shè)為 CW_USEDEFAULT 則系統(tǒng)為窗口選擇缺省的左上角坐標(biāo)并忽略 y 參數(shù)吁津,CW_USEDEFAULT 只對(duì)層疊窗口有效棚蓄,如果為彈出式窗口或子窗口設(shè)定,則 x 和 y 參數(shù)被設(shè)為零碍脏。

y:1. 指定窗口的初始垂直位置(y 坐標(biāo))

2. 對(duì)一個(gè)層疊或彈出式窗口梭依,y 參數(shù)是屏幕坐標(biāo)系的窗口的左上角的初始 y 坐標(biāo)

3. 對(duì)于子窗口,y 是子窗口左上角相對(duì)父窗口客戶(hù)區(qū)左上角的初始 y 坐標(biāo)

4. 對(duì)于列表框典尾,y 是列表框客戶(hù)區(qū)左上角相對(duì)父窗口客戶(hù)區(qū)左上角的初始 y 坐標(biāo)

5. 如果層疊窗口是使用 WS_VISIBLE 風(fēng)格位創(chuàng)建的并且 x 參數(shù)被設(shè)為 CW_USEDEFAULT役拴,則系統(tǒng)將忽略 y 參數(shù)

nWidth1. 以設(shè)備單元指明窗口的寬度

2. 對(duì)于層疊窗口,nWidth 的值或是屏幕坐標(biāo)的窗口寬度或是 CW_USEDEFAULT

3. 若 nWidth 是 CW_USEDEFAULT钾埂,則系統(tǒng)為窗口選擇一個(gè)默認(rèn)的高度和寬度(默認(rèn)寬度為從初始 x 坐標(biāo)開(kāi)始到屏幕的右邊界河闰,缺省高度為從初始 y 坐標(biāo)開(kāi)始到目標(biāo)區(qū)域的頂部。)褥紫,CW_USEDEFAULT 只對(duì)層疊窗口有效姜性,如果為彈出式窗口和子窗口設(shè)定 CW_USEDEFAULT 標(biāo)志則 nWidth 和 nHeight 被設(shè)為零

nHeight1. 以設(shè)備單元指明窗口的高度

2. 對(duì)于層疊窗口,nHeight 是屏幕坐標(biāo)的窗口寬度

3. 若 nWidth 被設(shè)為 CW_USEDEFAULT髓考,則系統(tǒng)忽略 nHeight 參數(shù)部念,自動(dòng)為 nWidth 和 nHeight 設(shè)置默認(rèn)參數(shù)

hWndParent

1. 指向被創(chuàng)建窗口的父窗口或所有者窗口的句柄

2. 若要?jiǎng)?chuàng)建一個(gè)子窗口或一個(gè)從屬窗口,需提供一個(gè)有效的窗口句柄

3. 創(chuàng)建一個(gè)單純的消息窗口氨菇,可以提供 HWND_MESSAGE 或提供一個(gè)己存在的消息窗口的句柄

hMenu

1. 指向窗口菜單句柄儡炼,或依據(jù)窗口風(fēng)格指明一個(gè)子窗口標(biāo)識(shí)

2. 對(duì)于層疊或彈出式窗口,hMenu 指定窗口使用的菜單:如果使用了菜單類(lèi)门驾,則 hMenu 可以為 NULL

3. 對(duì)于子窗口射赛,hMenu 指定了該子窗口標(biāo)識(shí)(一個(gè)整型量),一個(gè)對(duì)話(huà)框使用這個(gè)整型值將事件通知父類(lèi)奶是。應(yīng)用程序確定子窗口標(biāo)識(shí)楣责,這個(gè)值對(duì)于相同父窗口的所有子窗口必須是唯一的

hInstance與窗口相關(guān)聯(lián)的模塊實(shí)例的句柄

lpParam

1. 指向一個(gè)值的指針,該值傳遞給窗口 WM_CREATE 消息聂沙。該值通過(guò)在 IParam 參數(shù)中的 CREATESTRUCT 結(jié)構(gòu)傳遞

2. 如果應(yīng)用程序調(diào)用 CreateWindow 創(chuàng)建一個(gè) MDI 客戶(hù)窗口秆麸,則 lpParam 必須指向一個(gè) CLIENTCREATESTRUCT 結(jié)構(gòu)

dwStyle 窗口風(fēng)格解析

窗口風(fēng)格含義

WS_BORDER創(chuàng)建一個(gè)帶邊框的窗口

WS_CAPTION創(chuàng)建一個(gè)有標(biāo)題框的窗口(包含了 WS_BODER 風(fēng)格)

WS_CHILD創(chuàng)建一個(gè)子窗口,這個(gè)風(fēng)格的窗口不能擁有菜單也不能與 WS_POPUP 風(fēng)格合用

WS_CHILDWINDOW與 WS_CHILD 相同

WS_CLIPCHILDREN當(dāng)在父窗口內(nèi)繪圖時(shí)及汉,排除子窗口區(qū)域沮趣,在創(chuàng)建父窗口時(shí)使用這個(gè)風(fēng)格

WS_CLIPSIBLINGS1. 排除子窗口之間的相對(duì)區(qū)域,也就是坷随,當(dāng)一個(gè)特定的窗口接收到 WM_PAINT 消息時(shí)房铭,WS_CLIPSIBLINGS 風(fēng)格將所有層疊窗口排除在繪圖之外驻龟,只重繪指定的子窗口

2. 如果未指定該風(fēng)格,并且子窗口是層疊的缸匪,則在重繪子窗口的客戶(hù)區(qū)時(shí)翁狐,就會(huì)重繪鄰近的子窗口

WS_DISABLED1. 創(chuàng)建一個(gè)初始狀態(tài)為禁止的子窗口,一個(gè)禁止?fàn)顟B(tài)的窗口不能接受來(lái)自用戶(hù)的輸入信息

2. 在窗口創(chuàng)建之后凌蔬,可以調(diào)用 EnableWindow 函數(shù)來(lái)啟用該窗口

WS_DLGFRAME創(chuàng)建一個(gè)帶對(duì)話(huà)框邊框風(fēng)格的窗口露懒,這種風(fēng)格的窗口不能帶標(biāo)題條

WS_GROUP1. 指定一組“控制窗口”的第一個(gè)“控制窗口”

2. 這個(gè)“控制窗口”組由第一個(gè)“控制窗口”和隨后定義的“控制窗口”組成,自第二個(gè)“控制窗口”開(kāi)始每個(gè)“控制窗口”具有 WS_GROUP 風(fēng)格

3. 每個(gè)組的第一個(gè)“控制窗口”帶有 WS_TABSTOP 風(fēng)格砂心,從而使用戶(hù)可以在組間移動(dòng)

4. 用戶(hù)隨后可以使用光標(biāo)在組內(nèi)的控制間改變鍵盤(pán)焦點(diǎn)

WS_HSCROLL創(chuàng)建一個(gè)有水平滾動(dòng)條的窗口

WS_ICONIC創(chuàng)建一個(gè)初始狀態(tài)為最小化狀態(tài)的窗口懈词,與 WS_MINIMIZE 風(fēng)格相同

WS_MAXIMIZE創(chuàng)建一個(gè)初始狀態(tài)為最大化狀態(tài)的窗口

WS_MAXIMIZEBOX創(chuàng)建一個(gè)具有最大化按鈕的窗口,該風(fēng)格不能與 WS_EX_CONTEXTHELP 風(fēng)格同時(shí)出現(xiàn)辩诞,同時(shí)必須指定 WS_SYSMENU 風(fēng)格

WS_MINIMIZE創(chuàng)建一個(gè)初始狀態(tài)為最小化狀態(tài)的窗口坎弯,與 WS_ICONIC 風(fēng)格相同

WS_MINIMIZEBOX創(chuàng)建一個(gè)具有最小化按鈕的窗口,該風(fēng)格不能與 WS_EX_CONTEXTHELP 風(fēng)格同時(shí)出現(xiàn)躁倒,同時(shí)必須指定 WS_SYSMENU 風(fēng)格

WS_OVERLAPPED產(chǎn)生一個(gè)層疊的窗口荞怒,一個(gè)層疊的窗口有一個(gè)標(biāo)題條和一個(gè)邊框,與 WS_TILED 風(fēng)格相同

WS_OVERLAPPEDWINDOW相當(dāng)于(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)秧秉,與 WS_TILEDWINDOW 風(fēng)格相同

WS_POPUP創(chuàng)建一個(gè)彈出式窗口褐桌,該風(fēng)格不能與 WS_CHILD 風(fēng)格同時(shí)使用。

WS_POPUPWINDOW相當(dāng)于(WS_POPUP | WS_BORDER | WS_SYSMENU)象迎,但 WS_CAPTION 和 WS_POPUPWINDOW 必須同時(shí)設(shè)定才能使窗口某單可見(jiàn)

WS_SIZEBOX創(chuàng)建一個(gè)可調(diào)邊框的窗口荧嵌,與 WS_THICKFRAME 風(fēng)格相同

WS_SYSMENU創(chuàng)建一個(gè)在標(biāo)題條上帶有窗口菜單的窗口,必須同時(shí)設(shè)定 WS_CAPTION 風(fēng)格

WS_TABSTOP1. 創(chuàng)建一個(gè)“控制窗口”砾淌,在用戶(hù)按下 Tab 鍵時(shí)可以獲得鍵盤(pán)焦點(diǎn)啦撮。

2. 按下 Tab 鍵后使鍵盤(pán)焦點(diǎn)轉(zhuǎn)移到下一具有 WS_TABSTOP 風(fēng)格的“控制窗口”

WS_THICKFRAME創(chuàng)建一個(gè)具有可調(diào)邊框的窗口,與 WS_SIZEBOX 風(fēng)格相同

WS_TILED產(chǎn)生一個(gè)層疊的窗口汪厨,一個(gè)層疊的窗口有一個(gè)標(biāo)題和一個(gè)邊框赃春,與 WS_OVERLAPPED 風(fēng)格相同

WS_TILEDWINDOW相當(dāng)于(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX),與 WS_OVERLAPPEDWINDOW 風(fēng)格相同

WS_VISIBLE創(chuàng)建一個(gè)初始狀態(tài)為可見(jiàn)的窗口

WS_VSCROLL創(chuàng)建一個(gè)有垂直滾動(dòng)條的窗口

返回值:

1. 如果函數(shù)成功劫乱,返回值為新窗口的句柄织中;

2. 如果函數(shù)失敗,返回值為 NULL衷戈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狭吼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子殖妇,更是在濱河造成了極大的恐慌刁笙,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疲吸,居然都是意外死亡座每,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)摘悴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)尺栖,“玉大人,你說(shuō)我怎么就攤上這事烦租。” “怎么了除盏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵叉橱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我者蠕,道長(zhǎng)窃祝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任踱侣,我火速辦了婚禮粪小,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抡句。我一直安慰自己探膊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布待榔。 她就那樣靜靜地躺著逞壁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锐锣。 梳的紋絲不亂的頭發(fā)上腌闯,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音雕憔,去河邊找鬼姿骏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斤彼,可吹牛的內(nèi)容都是我干的分瘦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼畅卓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼擅腰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起翁潘,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤趁冈,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體渗勘,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沐绒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旺坠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乔遮。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖取刃,靈堂內(nèi)的尸體忽然破棺而出蹋肮,到底是詐尸還是另有隱情,我是刑警寧澤璧疗,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布坯辩,位于F島的核電站,受9級(jí)特大地震影響崩侠,放射性物質(zhì)發(fā)生泄漏漆魔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一却音、第九天 我趴在偏房一處隱蔽的房頂上張望改抡。 院中可真熱鬧,春花似錦系瓢、人聲如沸阿纤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阵赠。三九已至,卻和暖如春肌稻,著一層夾襖步出監(jiān)牢的瞬間清蚀,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工爹谭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枷邪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓诺凡,卻偏偏與公主長(zhǎng)得像东揣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腹泌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容