1. 程式人生 > >Windows API一日一練 6 CreateWindow函數

Windows API一日一練 6 CreateWindow函數

ont 保存 str ret 人工 def dshow 零基礎 edwin

分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net

一個窗口要顯示,先要把它創建出來。那就需要調用API函數CreateWindow了,所以在註冊窗口後的第二步,就需要調用創建窗口函數。 函數聲明如下: WINUSERAPI HWND WINAPI CreateWindowExA( __in DWORD dwExStyle, __in_opt LPCSTR lpClassName, __in_opt LPCSTR lpWindowName,
__in DWORD dwStyle, __in int X, __in int Y, __in int nWidth, __in int nHeight, __in_opt HWND hWndParent, __in_opt HMENU hMenu, __in_opt HINSTANCE hInstance, __in_opt LPVOID lpParam); WINUSERAPI HWND WINAPI CreateWindowExW( __in DWORD dwExStyle, __in_opt LPCWSTR lpClassName,
__in_opt LPCWSTR lpWindowName, __in DWORD dwStyle, __in int X, __in int Y, __in int nWidth, __in int nHeight, __in_opt HWND hWndParent, __in_opt HMENU hMenu, __in_opt HINSTANCE hInstance, __in_opt LPVOID lpParam); #ifdef UNICODE #define CreateWindowEx CreateWindowExW
#else #define CreateWindowEx CreateWindowExA #endif // !UNICODE #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,/ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)/ CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,/ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,/ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)/ CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,/ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) #ifdef UNICODE #define CreateWindow CreateWindowW #else #define CreateWindow CreateWindowA #endif // !UNICODE dwExStyle是擴展的窗口類型。 lpClassName是註冊的窗口類型名稱。 lpWindowName是窗口名稱。 dwStyle是窗口類型。 X是窗口左上角位置。 Y是窗口左上角位置。 nWidth是窗口的寬度。 nHeight是窗口的高度。 hWndParent是父窗口。 hMenu是主菜單。 hInstance是應用程序實例句柄。 lpParam是傳送給窗口的自定義參數。 調用這個函數的實例如下: #001 // #002 // 函數: InitInstance(HINSTANCE, int) #003 // #004 // 目的: 保存程序實例句柄,並創建窗口顯示。 #005 // #006 // 蔡軍生 2007/07/12 #007 // #008 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) #009 { #010 HWND hWnd; #011 #012 hInst = hInstance; // 保存實例句柄到全局變量裏。 #013 #014 hWnd = CreateWindow(szWindowClass, #015 szTitle, #016 WS_OVERLAPPEDWINDOW, #017 CW_USEDEFAULT, #018 0, #019 CW_USEDEFAULT, #020 0, #021 NULL, #022 NULL, #023 hInstance, #024 NULL); #025 #026 if (!hWnd) #027 { #028 return FALSE; #029 } #030 #031 ShowWindow(hWnd, nCmdShow); #032 UpdateWindow(hWnd); #033 #034 return TRUE; #035 } 14行裏就是調用創建窗口函數。szWindowClass是窗口註冊名稱,前面已經介紹過註冊的。 15行的szTitle是窗口顯示的標題。 16行是窗口顯示類型。 17行是缺省的左上角坐標。 18行是窗口左上角坐標,由於X坐標設置為缺省的坐標了,所以會忽略這裏的所有設置的值。 19行是設置窗口的寬度。使用缺省值。 20行同樣忽略窗口的高度。 21行是沒有父窗口。 22行是沒有主菜單。 23行是窗口當前實例句柄。 24行是傳遞給窗口的自定義參數為空。 如果窗口創建成功就會返回這個窗口的句柄,否則返回空值。 通過這樣設置,就可以創建各種各樣的窗口,只要你自己喜歡的,就可以改變它。

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net

Windows API一日一練 6 CreateWindow函數