电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> 计算机学习>>Windows API函数:CreateWindow函数解析:

Windows API函数:CreateWindow函数解析

来源:网络 | 2007-10-26 | (有12838人读过)

一个窗口要显示,先要把它创建出来。那就需要调用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行是传递给窗口的自定义参数为空。 
  
如果窗口创建成功就会返回这个窗口的句柄,否则返回空值。 
通过这样设置,就可以创建各种各样的窗口,只要你自己喜欢的,就可以改变它。 
计算机学习热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2021 电脑爱好者 版权所有 备案号:鲁ICP备09059398号