传递给RegisterClass函数的信息会在一个数据结构中设定好,
而传递给CreateWindow函数的信息会在函数单独的参数中设定好。
下面是HELLOWIN.C中的CreateWindows呼叫,每一个字段都做了完整的说明:
hwnd = CreateWindow (szAppName, // window class name
TEXT ( "The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
在这里,我不想提实际上有CreateWindowA函数和CreateWindowW函数,
两个函数分别将前两个参数当成ASCII或者Unicode字符串来处理。
标记为「window class name」的参数是szAppName,
它含有字符串「HelloWin」-这是 程序注册的窗口 类别名称。
这就是我们建立的 窗口联结窗口类别 的方式。
此程序建立的窗口是一个普通的重迭式窗口。
它含有一个标题列,标题列左边有一个系统菜单按钮,
标题列右边有缩小、放大和关闭图示,四周还有一个表示窗口大小的边框。
这是标准样式的窗口,名为WS_OVERLAPPEDWINDOW,
出现在CreateWindow的「窗口样式」参数中。
如果看一下WINUSER.H,您将会发现此样式是几种位旗标的组合:
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | /
WS_CAPTION | /
WS_SYSMENU | /
WS_THICKFRAME | /
WS_MINIMIZEBOX | /
WS_MAXIMIZEBOX)
「窗口标题」是显示在标题列中的文字。
注释着「initial x position」和「initial y position」的参数指定了窗口左上角相对于屏幕左上角的初始位置。
由于这些参数使用CW_USEDEFAULT标识符,指示Windows使用重迭窗口的内定位置。
(CW_USEDEFAULT定义为0x80000000。)内定情况下,Windows依次对新建立的窗口定位,
使各窗口左上角的垂直和水平距离在屏幕上按一定的大小递增。
与此类似,注释着「initial x size」和「initial y size」的参数分别指定窗口的宽度和高度。
同样使用了CW_USEDEFAULT标识符,表明希望Windows使用内定尺寸。
在建立一个「最上层」窗口,如应用程序窗口时,注释为「父窗口句柄」的参数设定为NULL。
通常,如果窗口之间存在有父子关系,则子窗口总是出现在父窗口的上面。
应用程序窗口出现在桌面窗口的上面,但不必为呼叫CreateWindow而找出桌面窗口的句柄。
因为窗口没有菜单,所以「窗口菜单句柄」也设定为NULL。
「程序执行实体句柄」设定为执行实体句柄,它是作为WinMain的参数传递给这个程序的。
最后,「建立参数」指标设定为NULL,可以用这个参数存取稍后程序中可能引用到的数据。
CreateWindow传回被建立的窗口的句柄,该句柄存放在变量hwnd中,
后者被定义为HWND型态(「窗口句柄型态」)。
Windows中的每个窗口都有一个句柄,程序用句柄来使用窗口。
许多Windows函数需要使用hwnd作为参数,这样,Windows才能知道函数是针对哪个窗口的。
如果一个程序建立了许多窗口,则每个窗口均有一个句柄。
窗口句柄是Windows程序所处理最重要的句柄之一。
F:/JCreatorV3/MyProjects
appletviewer AppletDemo.html
IDE集成开发环境
GUI图形用户界面
AWT GUI类
Applet 所有applet的超类
Button 按钮;单击它会引发事件
Component 所有GUI类的超类
Container 可包含其他组件的一个组件
Frame 带有标题栏的一个GUI窗口
Label 用于显示但不用于输入文本
Panel 不可见容器
TextField 用于显示和输入文本
Window Frame类的超类