注册子窗框类

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

典型的MDI应用程序必须注册两个窗口类:一个用于其框架窗口,一个用于其子窗口。如果应用程序支持多种类型的文档(例如,电子表格和图表),则它必须为每种类型注册一个窗口类。

框架窗口的类结构类似于非MDI应用程序中主窗口的类结构。MDI子窗口的类结构与非MDI应用程序中子窗口的结构略有不同,如下所示:

*类结构应该有一个图标,因为用户可以将MDI子窗口最小化为正常的应用程序窗口。

*菜单名称应为NULL,因为MDI子窗口不能有自己的菜单。

*类结构应该在窗口结构中预留额外的空间。有了这个空间,应用程序可以将数据(如文件名)与特定的子窗口相关联。

以下示例显示了Multipad如何注册其框架和子窗口类。

BOOL APIENTRY InitializeApplication()

{

WNDCLASS wc;

//注册框架类。

wc.style = 0;

wc.lpfnWndProc = (WNDPROC) MPFrameWndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInst;

wc.hIcon = LoadIcon(hInst, IDMULTIPAD);

wc.hCursor = LoadCursor((HANDLE) NULL, IDC_ARROW);

wc.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1);

wc.lpszMenuName = IDMULTIPAD;

wc.lpszClassName = szFrame;

if(!RegisterClass(& wc))

return FALSE;

//注册MDI子窗口类。

wc.lpfnWndProc = (WNDPROC) MPMDIChildWndProc;

wc.hIcon = LoadIcon(hInst, IDNOTE);

wc.lpszMenuName = (LPCTSTR) NULL;

wc.cbWndExtra = CBWNDEXTRA;

wc.lpszClassName = szChild;

if(!RegisterClass(& wc))

return FALSE;

return TRUE;

}