Registering Child and Frame Window Classes
A typical MDI application must register two window classes: one for its frame
window and one for its child windows. If an application supports more than one
type of document (for example, a spreadsheet and a chart), it must register a
window class for each type.
The class structure for the frame window is similar to the class structure for
the main window in non-MDI applications. The class structure for the MDI child
windows differs slightly from the structure for child windows in non-MDI
applications as follows:
- The class structure should have an icon, because the user can minimize an MDI
child window as if it were a normal application window.
- The menu name should be NULL, because an MDI child window cannot have its own
menu.
- The class structure should reserve extra space in the window structure. With
this space, the application can associate data, such as a filename, with a
particular child window.
The following example shows how Multipad registers its frame and child window
classes.
BOOL APIENTRY InitializeApplication()
{
WNDCLASS wc;
// Register the frame window class.
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;
// Register the MDI child window class.
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;
}
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database