1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
// File: init.cxx
// Created: Thu Aug 6 10:02:25 1998
// Author: Administrateur Atelier MDL
// <mdl@efalakox.paris1.matra-dtv.fr>
#ifdef WNT
// include windows.h first to have all definitions available
#include <windows.h>
#include "Draw_Window.hxx"
#include "DrawRessource.h"
#include "init.h"
#include "MainWindow.h"
#include "CommandWindow.h"
#define USEDEFAULT 200
/*--------------------------------------------------------*\
| REGISTER APPLICATION CLASS
| Enregistrement des classes de fenetres de l'application
|
d\*--------------------------------------------------------*/
BOOL RegisterAppClass(HINSTANCE hInstance)
{
WNDCLASS wndClass;
// Parametres communs aux classes
//-----
wndClass.style = CS_HREDRAW | CS_VREDRAW | CS_CLASSDC;
wndClass.cbClsExtra = 0;
wndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndClass.hInstance = hInstance;
// Enregistrement de la fenetre principale
//-----
wndClass.cbWndExtra = sizeof(LONG);
wndClass.lpfnWndProc = (WNDPROC)WndProc;
wndClass.hIcon = (HICON)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
wndClass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wndClass.lpszMenuName = MAKEINTRESOURCE(APPMENU);
wndClass.lpszClassName = APPCLASS;
if(!RegisterClass(&wndClass))
return(FALSE);
// Enregistrement de la fenetre DrawWindow
//------
wndClass.cbWndExtra = sizeof(LONG); // Extra Memory
wndClass.lpfnWndProc = (WNDPROC)DrawWindow::DrawProc;
wndClass.hIcon = 0;
wndClass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = DRAWCLASS;
if(!RegisterClass(&wndClass))
{
UnregisterClass(APPCLASS, hInstance);
return(FALSE);
}
// Enregistrement de la fenetre CommandWindow
//------
wndClass.lpfnWndProc = (WNDPROC)CommandProc((HWND)WndProc,(WPARAM)342,(LPARAM)443);
//wndClass.lpfnWndProc = (WNDPROC)CommandProc;
wndClass.hIcon = 0;
wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = COMMANDCLASS;
if(!RegisterClass(&wndClass))
{
UnregisterClass(APPCLASS, hInstance);
UnregisterClass(DRAWCLASS, hInstance);
return(FALSE);
}
return(TRUE);
}
/*--------------------------------------------------------*\
| UNREGISTER APPLICATION CLASS
| Suppression des classes de fenetres de l'application
|
\*--------------------------------------------------------*/
VOID UnregisterAppClass(HINSTANCE hInstance)
{
UnregisterClass(APPCLASS, hInstance);
UnregisterClass(DRAWCLASS, hInstance);
}
/*--------------------------------------------------------*\
| CREATE APPLICATION WINDOW
| Creation de la fenetre Top-Level
|
\*--------------------------------------------------------*/
HWND CreateAppWindow(HINSTANCE hInstance)
{
return(CreateWindow(APPCLASS, APPTITLE,
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
400,0,
623,767,
NULL, NULL, hInstance, NULL));
}
/*--------------------------------------------------------*\
| CREATE MDI CLIENT WINDOW
| Creation de la fenetre qui contient des fenetres MDI
|
\*--------------------------------------------------------*/
HWND CreateMDIClientWindow(HWND hWndFrame)
{
HWND hWndClient;
HANDLE hInstance;
CLIENTCREATESTRUCT ccs;
// Initialisation de la structure client
ccs.hWindowMenu = NULL;
ccs.idFirstChild = 0;
#ifndef _WIN64
hInstance = (HANDLE)GetWindowLong(hWndFrame, GWL_HINSTANCE);
#else
hInstance = (HANDLE)GetWindowLong(hWndFrame, GWLP_HINSTANCE);
#endif
hWndClient = CreateWindow("MDICLIENT",NULL,
WS_CHILD | WS_CLIPSIBLINGS |
WS_VISIBLE | MDIS_ALLCHILDSTYLES,
0, 0, 1, 1,
hWndFrame, NULL,
(HINSTANCE)hInstance, (LPVOID)&ccs);
return(hWndClient);
}
#endif
|