Сразу после метки Start,
программа обращается к функции API Win32
GetModuleHandle для получения handle данного
модуля (данный параметр чаще именуют как
handle of instance). Получив handle, мы
вызываем диалог, созданный либо вручную,
либо с помощью какой-либо программы построителя
ресурсов. Далее программа проверяет результат
работы диалогового окна. Если пользователь
вышел из диалога посредством нажатия клавиши
OK, то приложение запускает MessageBox
с текстом приветствия.
Диалоговая процедура обрабатывает
следующие сообщения. При инициализации
диалога (WM_INITDIALOG) она просит Windows
установить фокус на поле ввода имени пользователя.
Сообщение WM_COMMAND обрабатывается в
таком порядке: делается проверка на код
нажатия клавиши. Если была нажата клавиша
OK, то пользовательский ввод копируется
в переменную szValue, если же была нажата
клавиша Cancel, то копирования не производится.
Но и в том и другом случае вызывается
функция окончания диалога: EndDialog.
Остальные сообщения в группе WM_COMMAND
просто игнорируются, предоставляя Windows
действовать по умолчанию.
Вы можете сравнить приведённую
программу с аналогичной программой, написанной
на ЯВУ, разница в написании будет незначительна.
Очевидно те, кто писал приложения на ассемблере
под Windows 3.x, отметят тот факт, что
исчезла необходимость в сложном и громоздком
startup коде. Теперь приложение выглядит
более просто и естественно.
|