который непосредственно следует за описанием
выглядит следующим образом:
TDeb 3.0 #3-3 = 64 =
procedure WMMouseMove(var Msg: TMessage); virtual WM_MOUSE;
Как вы можете видеть, идентификатор WM_MOUSEMOVE можно при-
соединить к процедуре с помощью оператора virtual <идентифика-
тор>, который непосредственно следует за описанием процедуры.
Параметры процедуры окна Windows wParam и lParam содержит
тип TMessage. Эти параметры часто содержат дополнительную инфор-
мацию о сообщении, например, где позиционируется "мышь".
В следующих нескольких разделах поясняется, как работает
программа TDODEMOB. В нее преднамеренно внесены ошибки, которые
вы сможете обнаружить позднее. Полезно также запустить Турбо Пас-
каль для Windows и открыть файл TDODEMOB.PAS, после чего вы смо-
жете следовать по коду программы.
Определение оконного типа ScribbleWindow
-----------------------------------------------------------------
Тип ScribbleWindow определяется следующим образом:
class ScribbleWindow : public TWindow
{
public:
HDC HandleDC; // вывод содержимого для рисования
BOOL ButtonDown; // флаг левой кнопки
HPEN ThePen; // перо, которое используется для
// рисования цветом
ScribbleWindow(PTWindowObject AParent, LPSTR ATitle);
-ScribbleWindow();
void GetWindowClass(WNDCLASS &AWndClass);
virtual void WMLButtonDown(RTMessage
Msg)=[WN_First+WM_LBUTTONDOWN];
virtual void WMLButtonUp(RTMessage MSG)=(WM_FIRST+
WM_LBUTTONUP);
virtual void WMLMouseMove(RTMessage MSG)=(WM_FIRST+
WM_MOUSEMOVE);
virtual void WMLButtonDown(RTMessage MSG)=(WM_FIRST+