创建主窗口

【勇芳软件工作室】汉化HomePreviousNext

应用程序创建的第一个窗口通常是【主窗口】.使用CreateWindowEx函数创建主窗口,指定窗口类,窗口名称,窗口样式,大小,位置,菜单句柄,实例句柄和创建数据。主窗口属于应用程序定义的窗口类,因此您必须注册窗口类,并在创建主窗口之前为该类提供一个窗口过程。

大多数应用程序通常使用WS_OVERLAPPEDWINDOW样式来创建主窗口。这种风格给窗口一个标题栏,一个窗口菜单,一个尺寸边框,并最大限度地减少和最大化按钮。CreateWindowEx函数返回一个唯一标识窗口的句柄。

以下示例创建属于应用程序定义的窗口类的主窗口。窗口名称“主窗口”将出现在窗口的标题栏中。通过将WS_VSCROLL和WS_HSCROLL样式与WS_OVERLAPPEDWINDOW样式相结合,应用程序除了由WS_OVERLAPPEDWINDOW样式提供的组件之外,还会创建一个包含水平和垂直滚动条的主窗口。CW_USEDEFAULT常数的四次出现将窗口的初始大小和位置设置为系统定义的默认值。通过指定NULL而不是菜单句柄,窗口将为窗口类定义菜单。

HINSTANCE hinst;

HWND hwndMain;

//创建主窗口。

hwndMain = CreateWindowEx(

0, //没有扩展样式

"MainWClass", // 班级名称

"Main Window", //窗口名称

WS_OVERLAPPEDWINDOW | //重叠窗口

WS_HSCROLL | //水平滚动条

WS_VSCROLL, //垂直滚动条

CW_USEDEFAULT, //默认水平位置

CW_USEDEFAULT, //默认垂直位置

CW_USEDEFAULT, //默认宽度

CW_USEDEFAULT, //默认高度

(HWND) NULL, //没有父或所有者窗口

(HMENU) NULL, //使用类菜单

hinstance, //实例句柄

NULL); //没有窗口创建数据

如果(!hwndMain)

return FALSE;

//使用程序指定的标志显示窗口

//启动应用程序,并发送应用程序

//一个WM_PAINT消息。

ShowWindow(hwndMain, SW_SHOWDEFAULT);

UpdateWindow(hwndMain);

请注意,上述示例在创建主窗口后调用ShowWindow函数。这样做是因为Windows在创建后不会自动显示主窗口。通过将SW_SHOWDEFAULT标志传递给ShowWindow,应用程序允许启动应用程序的程序设置主窗口的初始显示状态。UpdateWindow功能将窗口发送第一个WM_PAINT消息。