WndClass.lpszMenuName := nil;
WndClass.lpszClassName := AppName;
Result := RegisterClass(WndClass) <> 0;
end;
function WinCreate: HWnd;
var
hWindow: HWnd;
begin
hWindow := CreateWindow(AppName, 'Hello, Windows!!good !!' ,
ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);
if hWindow <> 0 then begin
ShowWindow(hWindow, CmdShow);
UpdateWindow(hWindow);
end;
Result := hWindow;
end;
var
AMessage: TMsg;
hWindow: HWnd;
begin
if not WinRegister then begin
MessageBox(0, '?aaeno?aoey i?a?aaia', nil, mb_Ok);
Exit;
end;
hWindow := WinCreate;
if hWindow = 0 then begin
MessageBox(0, 'Ia oaaeinu nicaaou ieii', nil, mb_Ok);
Exit;
end;
while GetMessage(AMessage, 0, 0, 0) do begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
Halt(AMessage.wParam);
end.
1) Создайте программу, появляющуюся в максимизированном состоянии.
2) Создайте программу, использующую курсор в виде песочных часов, обычно говорящих о выполнении длительного процесса.
3) Создайте программу со светло-серым фоном окна.
4) Создайте программу, отображающую ваше имя в заголовке основного окна.
5) Воспользуйтесь функцией SetTextColor и макросом RGB, чтобы напечатать слово "красный" красным, "зеленый" — зеленым, а "синий" — синим цветом.
6) Напишите программу, печатающую ваше имя и адрес в левом верхнем углу окна.
7) Напишите программу, печатающую ваше имя и адрес так, что они всегда остаются центрированными посередине окна, даже если его размер меняется.
8) Напишите программу, которая использует SetTextAlign и TextOut.
9) Напишите программу нажатия системных клавиш.
10) Напишите программу передвижения мыши.
11) Напишите программу определения нажатия кнопок мыши.
12) Напишите программу определения двойного нажатия кнопок мыши.
Отчет должен содержать следующую информацию:
1) распечатанную программу;
2) продемонстрировать результат работы программы;
3) объяснить структуру программы.
1) Что такое WNDCLASS.
2) Какова цель функции Register.
3) Какова цель функции Create.
4) Какова разница между ShowWindow и UpdateWindow.
5) Какова цель WndProc.
6) Какова цель цикла опроса сообщений.
7) Когда и как часто посылаются сообщенияWM_CREATE.
8) В чем разливе функций BeginPaint и GetDC.
9) Назовите две функции, которые можно использовать для вывода текста.
10) Слово "устройство" применялось в основном для обозначения видеоэкрана или видеокарты. Какие другие виды устройств могут быть важны при ответе на сообщения WM_PAINT.
11) Сообщения — это в действительности просто константы. Как определить значение константы, ассоциированной с сообщениями WM_CREATE.
12) Каковы основные шаги при написании новой Windows-программы, всегда ли необходимо вводить новую программу "с нуля".
13) Опишите несколько различий между традиционной DOS-программой и ориентированной на события программой Windows.
14) Назовите два сообщения, посылаемых функции KeyMouse_OnLButtonDown.
15) Что представляют собой константы VK.
16) Что такое стиль CS_DBLCLKS и когда он используется?
17) Какой цвет получается в результате обнуления всех трех параметров RGB.
18) Как по-другому называется системная клавиша.
19) Куда переместится фокус, когда вы нажмете системную клавишу при программировании KeyMouse.
20) Какая функция, на ваш взгляд, вызывается чаще: KeyMouse_OnKey или КeуMouse_OnChar.
21) Что произойдет, если вы забудете вызвать ReleaseDC после GetDC в функции KeyMouse_OnMouseMove.
СПИСОК ЛИТЕРАТУРЫ
1. Питерзолд. Прораммирование в Windows. –М.:
2. Рихтер Джеффри. Windows для профессионалов (программирование в Win 32 API для Windows NT 3.5 и Windows 95).- М.:«Русская Редакция», 1995.
3. Карверт Чарльз. DELPHI 2. Энциклопедия пользователя. -Киев.: НИПФ «ДиаСофт Лтд», 1996.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.