Ассемблер для Windows



         

Итак продолжим рассматривать ресурсы - часть 3


// определение диалогового окна DIAL1 DIALOG 0, 0, 240, 120 STYLE WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX CAPTION "Пример диалогового окна" FONT 8, "Arial" { // поле редактирования, идентификатор 1 CONTROL "", 1, "edit", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 24, 20, 128, 12 // еще одно поле редактирования, идентификатор 2 CONTROL "", 2, "edit", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 24, 52, 127, 12 // текст, идентификатор 3 CONTROL "Строка 1", 3, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 164, 22, 60, 8 // еще текст, идентификатор 4 CONTROL "Строка 2", 4, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 163, 54, 60, 8 // кнопка, идентификатор 5 CONTROL "Выход", 5, "button", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISlBLE | WS_TABSTOP, 180, 76, 50, 14 }

;файл dial1.inc ; константы ; сообщение приходит при закрытии окна WM_CLOSE equ 10h WM_INITDIALOG equ 110h WM_COMMAND equ 111h WM_SETTEXT equ 0Ch WM_HOTKEY equ 312h EN_SETFOCUS equ 100h EN_KILLFOCUS equ 200h

; прототипы внешних процедур EXTERN UnregisterHotKey@8:NEAR EXTERN RegisterHotKey@16:NEAR EXTERN MessageBoxA@16:NEAR EXTERN ExitProcess@4:NEAR EXTERN GetModuleHandleA@4:NEAR EXTERN DialogBoxParamA@20:NEAR EXTERN EndDialog@8:NEAR EXTERN SendMessageA@16:NEAR EXTERN GetDlgItem@8:NEAR EXTERN MessageBoxA@16:NEAR

; структуры ; структура сообщения MSGSTRUCT STRUC MSHWND DWORD ? MSMESSAGE DWORD ? MSWPARAM DWORD ? MSLPARAM DWORD ? MSTIME DWORD ? MSPT DWORD ? MSGSTRUCT ENDS

;файл dial.asm .386P ; плоская модель .MODEL FLAT, stdcall include dial1.inc ; директивы компоновщику для подключения библиотек includelib c:\masm32\lib\user32.lib includelib c:\masm32\lib\kernel32.lib ; ------------------------------------------------------------ ; сегмент данных DATA SEGMENT DWORD PUBLIC USE32 'DATA' MSG MSGSTRUCT <?> HINST DD 0 ; дескриптор приложения PA DB "DIAL1",0 STR1 DB "Неправильный символ !",0 STR2 DB "Ошибка !",0 ; таблица для создания горячих клавиш TAB DB 32,33,34,35,36,37,38,39,40 DB 41,42,43,44,45,46,47,58,59,60 DB 61,62,63,64,65,66,67,68,69,70 DB 71,72,73,74,75,76,77,78,79,80 DB 81,82,83,84,85,86,87,88,89,90 DB 91,92,93,94,95,96,97,98,99,100 DB 101,102,103,104,105,106,107,108,109,110 DB 111,112,113,114,115,116,117,118,119,120 DB 121,122,123,124,125,126,127,128,129,130 DB 131,132,133,134,135,136,137,138,139,140 DB 141,142,143,144,145,146,147,148,149,150 DB 151,152,153,154,155,156,157,158,159,160 DB 161,162,163,164,165,166,167,168,169,170 DB 171,172,173,174,175,176,177,178,179,180 DB 181,182,183,184,185,186,187,188,189,190 DB 191,192,193,194,195,196,197,198,199,200 DB 201,202,203,204,205,206,207,208,209,210 DB 211,212,213,214,215,216,217,218,219,220 DB 221,222,223,224,225,226,227,228,229,230 DB 231,232,233,234,235,236,237,238,239,240 DB 241,242,243,244,245,246,247,248,249,250 DB 251,252,253,254,255 _DATA ENDS




Содержание  Назад  Вперед