Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Михаил_Флёнов_Компьютер_глазами_хакера.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
6.23 Mб
Скачать

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

i

 

мир Windows

P

 

 

 

 

 

 

 

 

i

ВнутреннийP

D

 

 

 

 

 

37

D

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

NOW!

o

 

 

 

BUY

 

Редактирование диалоговых окон

 

wClick

to

BUY

o m

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.2.wClick o m

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

w

 

 

 

 

 

 

.c

.

 

 

 

 

g

 

 

 

.

 

 

 

 

g

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

e

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

Отдельная песня — это редактирование диалоговых окон. Тут много команд, и

описать их все просто невозможно. Откройте раздел Dialog в дереве ресурсов и выделите ресурс под номером 200. Вы должны увидеть диалоговое окно в визуальном представлении (рис. 2.4).

Рис. 2.4. Просмотр диалогового окна

Для перехода в режим редактирования нужно выбрать меню Viewer | Edit Mode. Код диалогового окна под номером 200 представлен в листинге 2.2.

Листинг 2.2. Исходный код диалогового окна

200 DIALOG 50, 50, 194, 168

STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU MENU 118

CAPTION "Phone Dialer"

FONT 8, "MS Shell Dlg"

{

CONTROL "", 224, "STATIC", SS_ETCHEDHORZ | WS_DISABLED, 0, 0, 194, 1 LTEXT "&Number to dial:", 223, 7, 7, 90, 10

COMBOBOX 201, 7, 21, 90, 104, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_GROUP

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

38P

 

 

 

 

 

 

 

i

 

 

 

P

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

 

D

 

Глава 2

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

BUY

 

 

 

"&Dial", 1, 7, 38, 90, 14, WS_DISABLED | WS_GROUP

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DEFPUSHBUTTONto

w Click

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

wPUSHBUTTONo

"\n1", 202, 6, 62, 27, 20, BS_CENTER | BS_MULTILINE |

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

g

.c

 

 

 

 

.

 

 

 

 

g

.c

 

 

p

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

NOT WS_TABSTOP

 

 

 

 

 

 

 

 

 

 

 

 

PUSHBUTTON "ABC\n2", 203, 37, 62, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "DEF\n3", 204, 69, 62, 27, 20, BS_MULTILINE | NOT WS_TABSTOP PUSHBUTTON "GHI\n4", 205, 6, 86, 27, 20, BS_CENTER | BS_MULTILINE |

NOT WS_TABSTOP

PUSHBUTTON "JKL\n5", 206, 37, 86, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "MNO\n6", 207, 69, 86, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "PRS\n7", 208, 6, 110, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "TUV\n8", 209, 37, 110, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "WXY\n9", 210, 69, 110, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "\n*", 212, 6, 134, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "\n0", 211, 37, 134, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

PUSHBUTTON "\n#", 213, 69, 134, 27, 20, BS_CENTER | BS_MULTILINE | NOT WS_TABSTOP

GROUPBOX "Speed dial", 222, 103, 7, 84, 154 LTEXT "&1", 225, 109, 24, 7, 10

PUSHBUTTON "", 214, 117, 21, 63, 14, BS_LEFT | WS_GROUP LTEXT "&2", 226, 109, 41, 7, 10

PUSHBUTTON "", 215, 117, 38, 63, 14, BS_LEFT | WS_GROUP LTEXT "&3", 227, 109, 58, 7, 10

PUSHBUTTON "", 216, 117, 55, 63, 14, BS_LEFT | WS_GROUP LTEXT "&4", 228, 109, 75, 7, 10

PUSHBUTTON "", 217, 117, 72, 63, 14, BS_LEFT | WS_GROUP LTEXT "&5", 229, 109, 92, 7, 10

PUSHBUTTON "", 218, 117, 89, 63, 14, BS_LEFT | WS_GROUP LTEXT "&6", 230, 109, 109, 7, 10

PUSHBUTTON "", 219, 117, 106, 63, 14, BS_LEFT | WS_GROUP LTEXT "&7", 231, 109, 126, 7, 10

PUSHBUTTON "", 220, 117, 123, 63, 14, BS_LEFT | WS_GROUP LTEXT "&8", 232, 109, 143, 7, 10

PUSHBUTTON "", 221, 117, 140, 63, 14, BS_LEFT | WS_GROUP

}

Объявление диалогового окна в общем виде выглядит следующим образом:

n DIALOG x, y, w, h

STYLE Флаги стилей MENU Номер меню

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

i

 

мир Windows

ВнутреннийP

D

 

 

 

 

 

 

 

r

 

 

 

 

 

 

NOW!

o

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

"Заголовок"

CAPTIONto

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

FONT.

размер, "Название шрифта"

w

 

 

 

 

 

 

 

o

 

 

 

p

 

 

 

 

 

.c

 

 

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

{

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

// Здесь идет описание элементов окна

}

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

P

 

 

 

 

 

 

 

 

i

 

D

 

 

 

 

 

 

39

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Здесь:

n — номер ресурса;

x — левая позиция окна;

y — верхняя позиция окна;

w — ширина окна;

h — высота окна.

Далее идет описание стилей окна (STYLE). Если окно имеет меню, то оно указывается в следующей строке командой MENU Номер меню. Заголовок окна задается командой CAPTION "Текст заголовка". Затем следует описание используемого шрифта (размер/имя) и фигурные скобки, внутри которых перечисляются элементы окна. Давайте рассмотрим описание основных элементов, которые вы можете вставлять в текст окна.

Начиная с третьей версии программы, появилась возможность визуального редактирования диалоговых окон. Для этого нужно сначала выбрать режим просмотра ресурса по умолчанию (меню Viewer | Default view mode), а затем перейти в режим редактирования (меню Viewer | Edit Mode). В этом случае в окне просмотра ресурсов появится панель свойств выбранного элемента окна. Вы можете мышью двигать любые элементы, изменять их размеры и просматривать сделанные изменения (в той же панели свойств).

Единственный недостаток визуального редактора — нельзя добавлять компоненты. В этом случае придется писать код вручную (для чего надо выбрать режим Viewer | RC Mode). Это не страшно, если нужно добавить всего один рисунок. При значительном количестве новых элементов проще воспользоваться программой Resource Workshop или средой разработки Visual Studio.

Значки

Этот тип ресурсов позволяет добавлять графические изображения в диалоговые окна. В принципе, эффективность окна не улучшается, но красоту навести можно. Значки добавляются следующей командой:

ICON n, i, x, y, w, h

Необходимо задать такие параметры:

n — номер картинки в файле ресурсов. Изображение с таким номером уже должно существовать. Например, в программе Dialer есть два значка с номерами 1 и 116, и любой из этих номеров можно здесь использовать. Добавьте новые значки под своими номерами и потом используйте в диалоговых окнах;

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

-

 

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

 

t

 

 

40P

 

 

 

 

 

 

 

i

 

P

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

D

 

 

Глава 2

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

NOW!

o

w

 

 

 

 

BUY

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

— индекс, по которому программа сможет обращаться к значку. Не изменяйте

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

w

 

 

fэтот-xcha

 

индекс при редактировании уже существующей картинки. Если вы fдобав-x cha

-

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

g

.c

 

 

.

 

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

n

e

 

 

 

 

d

 

 

 

n

e

 

 

 

 

 

 

ляете новый значок, то можно указывать любое значение (желательно, чтобы

оно не конфликтовало с другими элементами в окне), все равно программа не знает о существовании нового значка и не будет к нему обращаться;

x — левая позиция значка;

y — верхняя позиция значка;

w — ширина значка;

h — высота значка.

Надписи

Надписи существуют для добавления текстовых пояснений к каким-либо элементам управления. Они объявляются следующим образом:

LTEXT "Текст", i, x, y, w, h

Здесь:

Текст — текст подписи (указывается в кавычках);

i — индекс, по которому программа сможет обращаться к подписи. Если вы ре-

дактируете уже существующую надпись, то не изменяйте этот индекс. При добавлении новой подписи можно указывать любое значение (желательно, чтобы оно не конфликтовало с другими элементами в окне), все равно программа не знает о существовании новой надписи и не будет к ней обращаться;

x — левая позиция надписи;

y — верхняя позиция надписи;

w — ширина надписи;

h — высота надписи.

Кнопки

По нажатию кнопок выполняются какие-либо команды. Чаще всего мы их видим в диалоговых окнах (в виде Да и Отмена), но бывают кнопки для вызова специализированных команд. Их объявление выглядит следующим образом:

PUSHBUTTON "Текст", i, x, y, w, h, Флаги

Необходимо задать:

Текст — подпись на кнопке (указывается в кавычках);

i — индекс, по которому программа сможет обращаться к кнопке. Правила его

задания такие же, как для значков и надписей; x — левая позиция кнопки;