CreateWindow() -- 創建普通的窗口


(1)函數原型

 1 HWND CreateWindow(
 2     LPCTSTR lpClassName,    //pointer to register class name 
 3     LPCTSTR lpWindowName,    //pointer to window name 
 4     DWORD dwstyle,    //window style
 5     int X,    //horizontal position of window 
 6     int Y,    //vertical positon of window
 7     int nWidth,    //window width
 8     int nHeight,    //window height
 9     HWND hWndParent,    //handle to parent or owner window
10     HMENU hMenu,    //handle to menu or child-window identifier
11     HANDLE hInstance,    //handle to application instance
12     LPVOID lpParam    //pointer to window-creation data
13 }

(2)函數說明

    該函數創建一個重疊式、彈出式窗口或子窗口。CreateWindow函數指定窗口類型、窗口標題、窗口樣式和窗口的初始位置及大小(可選項)。CreateWindow函數還指定窗口的父窗口、擁有者窗口和窗口菜單。

    對重疊式窗口、彈出式窗口和子窗口來講,CreateWindow函數發送WM_CREATE、WM_GETMINMAXINFO和WM_NCCREATE消息給窗口。WM_CREATE消息的lParam參數包含一個指向CREATESTRUCT數據結構的指針。如果將窗口指定為WS_WISIBLE樣式,CreateWindow函數將把為打開和顯示此窗口所需要的所有消息發送給該窗口,以便打開和顯示該窗口。如果窗口樣式函數指定了標題條,則由lpWindowName參數指定的窗口標題將在標題條中顯示。當使用CreateWindow創建如按鈕、選中和正文等控件時,lpWindowName參數指定控件的正文。

    CreateWindow函數即可用作寬字符函數,有可用作ANSI函數。

(3)參數說明

    ① lpClassName:指向一個以NULL為終止符的字符串,該串命名窗口類。類名可以是用RegisterClass函數注冊的任何名字,或者是在下表中的任何預定義的控制類名。

<控件類名及其含義>

實際含義
BUTTON

    一個小的矩形子窗口,該子窗口代表一個按鈕,用戶能通過鼠標單擊來打開或關閉它。按鈕控件可單獨使用或成組使用,也可貼上文字標簽,也可不包含文本。當用戶用鼠標單擊此按鈕時,按鈕控件常常要改變它的顯示外觀。

COMBOBOX

    規定一個控件,該控件由類似與一個編輯控件和一個列表框的選擇區域組成。列表框可一直顯示,或由用戶單擊緊挨選擇域的下拉圖標來顯示或隱藏。用戶能否編輯選擇域中的內容取決於組合框的方式。如果列表框是可見的,則鍵入到選擇框中的內容將使列表框中與輸入字符匹配的第1條列表框項變成高亮顯示。相反,在列表框中選擇一個項后,將在選擇域中顯示這個選擇項。

EDIT

    規定一個矩形子窗口。用戶能在這個窗口通過鍵盤輸入文字。用戶選擇控件后,輸入焦點將賦給此控件,這可通過在此控件上按下鼠標鍵或用Tab鍵將輸入該焦點移到此控件上來實現。當控件顯示一個閃爍的插入字符時,用戶就能輸入文字。鼠標能用於移動光標和選擇要替換的字符或者在插字符處定位光標。Backspace鍵能用來刪除字符。編輯控件使用變寬字並顯示ANSI字符,編譯運行用以前Windows版本的應用程序,將顯示不等寬字體的文字。應用程序還可發送WM_SETFONT消息給編輯控制,以便改變缺省字體。編輯控件把制表符按需要擴展成多個空格字符,以把光標移到下一個制表定位處。Tab的停止位置假定在第8個字符位置上。

LISTBOX

     指定一個字符串表。應用程序在任何需要顯示一個名字列表的時候(例如:用戶查看和選擇文件名)該控件將被使用。用戶可通過鼠標單擊選中一個串,此串被高亮顯示,並且發送一個通知信息給父窗口。在列表框控件中,可使用垂直或水平的屏幕滾動條,以便在控件窗口中滾動超出列表框范圍的列表項。列表框可根據需要自動地隱藏或顯示屏幕滾動條。

MDICLIENT

     指定一個MDI用戶窗口。用戶窗口接收控制MDI應用程序子窗口的消息。推薦方式為WS_CLIPCHIILDREN和WS_CHILD。應用程序可以使用WS_HSCROLL和WS_VSCROLL方式來創建一個允許用戶滾動MDI子窗口的MDI用戶窗。

RichEdit

    指定一個RichEdit1.0控件,此控件可以查看和編輯文本,並且具有字符和段落功能。此控件還能夠接納COM對象。

    指定一個RichEdit2.0控件

SCROLLBAR

    指定一個滾動條矩形,此矩形兩頭有方向箭頭,中間有翻閱塊。每當用戶在滾動條控件上按鍵時,滾動條就發送一個通知消息給它的父窗口。如果必要的話,父窗口負責修改翻閱塊。滾動條控制與普通窗口中使用滾動條具有相同的外觀並使用相同的函數。但與一般滾動條不同,滾動條控件能夠定位在窗口中的任何位置上,並在任何需要為一個窗口提供滾動條輸入時使用。

STATIC

    指定“一個簡單的正文域、框,或者可貼上標簽的矩形、框,或分開其他控制的矩形。靜態空間無輸入,也不提供輸入。

 

    ② lpWindowName:指向一個以NULL為終止符的字符串,該字符串代表該窗口的名字。

    ③ dwStyle:指定所創建的窗口樣式。它可以是下表中給出的任何方式的組合。

    ④ X:指定窗口初始的X位置。對於重疊式窗口或者彈出式窗口,X參數為窗口左上角初始的x坐標(在屏幕坐標系中)。

    如果這個值是CW_USEDEFAULT,Windows為窗口左上角選擇缺省的位置。對於一個子窗口,X是窗口在其父窗口的用戶區域中

    ⑤ Y:指定


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM