窗口的创建过程需要四个步骤,下面列出了创建步骤和这个过程中涉及的类和函数:
1.设计一个窗口类//很多特征(光标,图标,背景)WNDCLASS
2.注册窗口类//RegisterClass
3.创建窗口//首先定义句柄 如:HWND hwnd; CreateWindow
4.显示及更新窗口//显示窗口:ShowWindow,更新窗口:UpdateWindow
一、WNDCLASS类:
typedef struct _WNDCLASS {
UINT style; //
WNDPROC lpfnWndProc;
int cbClsExtra; //额外的内存空间,属于这种窗口类的所有窗口所共享,通常情况下设为0
int cbWndExtra; //额外的内存空间,窗口内存空间
HINSTANCE hInstance; //句柄
HICON hIcon; //句柄,图标
HCURSOR hCursor; //光标句柄
HBRUSH hbrBackground; //画刷句柄
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
第一个参数是指定类的类型,一般在Windows里面类有如下几种:(CS_BYTEALIGNCLIENT,CS_BYTEALIGNWINDOW,CS_CLASSDC,CS_DBLCLKS,CS_DROPSHADOW,CS_GLOBALCLASS,CS_HREDRAW,CS_NOCLOSE,CS_OWNDC,CS_PARENTDC,CS_SAVEBITS,CS_VRENRAW)它们都是只有一位为1的数值
第二个参数是回调函数,当应用程序收到给某一窗口的消息时,就应该调用某一函数来处理这条消息,这一调用过程不用应用程序自己来实施,而由操作系统完成,但是,回调函数本身的代码必须要应用程序自己完成。
第三和第四参数是系统额外分配的内存空间,其解释如上。
第五、六、七、八定义的是一个句柄,其结构类型如下:
HICON LoadIcon(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpIconName // name string or resource identifier
);//可以用Windows自带的标准图标,也可以CreateIcon,DestroyIcon
HCURSOR LoadCursor(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpCursorName // name or resource identifier
);//标准光标
在第九和第十个参数中,LPCTSTR:LONG POINTER CONST STRING.
二、创建窗口:
HWND CreateWindow(
LPCTSTR lpClassName, // registered class name
LPCTSTR lpWindowName, // window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
HMENU hMenu, // menu handle or child identifier
HINSTANCE hInstance, // handle to application instance
LPVOID lpParam // window-creation data
);
三、显示窗口:
BOOL ShowWindow(
HWND hWnd, // handle to window
int nCmdShow // show state
);
四、更新窗口
BOOL UpdateWindow(
HWND hWnd // handle to window
);
分享到:
相关推荐
VC 不规则窗口创建 窗口创建,根据图片创建不规则窗口
创建 窗口句柄,输出窗口,小游戏基本窗口
用VC6.0单文档程序实现了窗口创建,停靠等功能,绝对不会让你失望的
这是一个利用CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode) 创建多边形窗口的程序实例,很有用的哦
使用VC++8.0创建的透明窗口 半透明窗口的代码示例。
本程序为SDI,启动时创建时即影藏主窗口,并弹出SplashWindow,当SplashWindow消失时自动显示主窗口
创建非矩形窗口.rar创建非矩形窗口.rar创建非矩形窗口.rar创建非矩形窗口.rar创建非矩形窗口.rar
VC++在线程中创建并显示窗口,从线程函数开始全用windows API完成,让你不再受封装的困惑。每点一个按钮就创建一个线程,多个线程可显示多个窗口。好的话别忘了给个评论。
本人自学写出的第一个window窗口程序,包含window窗口、组件创建、消息处理、窗口绘图等。
VC 在窗口中动态创建FlexGrid ActiveX控件,本例是一个日常消费情况的记录程序为例,在窗口视图中动态创建FlexGrid网格控件,在代码中可设置FlexGrid行列的宽度和高度,若鼠标单击或停留在了当前行,会改变当前表格行...
本程序演示了如何在VC下编写代码,让窗口处于最顶层。
创建Dll,使用def导出方法 使用Dll助手,通过Dll助手调用dll方法
VC 浮动窗口 输入法
VC 在其它程序窗口上创建按钮并控制响应,其内有几个是封闭成的DLL,附有几个例子调用DLL,以加深大家的理解,写出这样的程序需要作者深入了解系统内的进程及线程环境,很有参考价值。
VC 创建半透明对话框窗口,加入WS_EX_LAYERED扩展属性,取得SetLayeredWindowAttributes函数指针。本窗口可设置窗体的透明度数值,在代码中设置,最终会创建透明度不一样的窗口效果,你可根据自己程序需要调整不同的...
使用VC6.0实现窗口的任意分割 创建动态分割窗口 创建静态分割窗口 实现各个分割区域的通信
VC WinExample和MFCExample程序演示,是创建此两类程序的演示,一种是使用WINAPI的方式 创建程序窗口,另一种是采用MFC方式创建窗口,下面列举一上结使用WINAPI方式创建窗口的具体代码,完整代码请下载本源码。...
VC 圆角窗体的实现例子,生成圆角形状的窗口,大家知道,默认状态下和一般情况下,窗体的边角都是矩形的,或许你看烦了这种窗口,想生成一种非标准的窗口,把边角美化成圆角,带弧度的那种窗口,本例子或许可以让你...
VC6.0阻止弹窗程序 弹窗免疫,阻止创建窗口,基于MFC实现,本弹窗拦截程序主要是根据窗口标题来阻止的,启动程序后在编缉控件中输入窗口标题,如果要输入多个就用空格或回车隔开,然后按开始就可以在以此为标题对话框在...
VC6下验证父窗口和子窗口的消息传递过程-C语言API方式,一个Hello Windows程序,使用API创建了两个窗口,父窗口和子窗口各一个窗口过程函数。验证了子窗口的消息,在父窗中口不会被响应。除非你自己做反射。代码中...