Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 612
от 10.08.2003, 23:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 3887
Отправлено ответов: 11454
Активность: 294.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Евгений Иванов
Статус: Опытный
Общий рейтинг: 145.34
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 125.56
URL: Методы оптимизации работы ПК
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.03
[Подробней >>]
 
Zedr0n
Статус: Доверительный
Общий рейтинг: 108.99
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.47
URL: Программирование
[Подробней >>]
dimka
Статус: Доверительный
Общий рейтинг: 141.79
[Подробней >>]
 
Hangatyr
Статус: Опытный
Общий рейтинг: 113.87
[Подробней >>]
Eugene
Статус: Профессиональный
Общий рейтинг: 106.74
URL: мощный файловый архив
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 135.3
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 126.84
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 107.51
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.28
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 113.24
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 3854. Здравствуйте, уважаемые эксперты! Не могли бы вы объяснить мне две вещи: 1. Мне нужно написать что-т... (ответов: 5)
Вопрос № 3855. Доброго времени суток, уважаемые эксперты! Опять возникла проблема - можно ли как-нибудь активизиров... (ответов: 7)
Вопрос № 3856. Hi all. Писал ли кто-нибудь софт для гостинниц. Или быть может в нете встречали. Подсобите кто чем с... (ответов: 4)
Вопрос № 3858. Подскажите начинающему, где найти принципиальную схема на микропроцессоре с детально разработанной ... (ответов: 4)
Вопрос № 3859. Как узнать кратно ли число 13!!! спасибо!!!... (ответов: 9)
Вопрос № 3860. К вопросу 3856 2Tigran K. Kalaidjian, мне исходники не нужны!... (ответов: 1)
Вопрос № 3861. · Уважаемые эксперты! Помогите разобраться.Вроде все правильно и Clipboard не пустой,но моей строки ... (ответов: 3)
Вопрос № 3862. Hi, Где можно взять документацию по IL .Net и вообще стоит ли её читать, почему то авторы книг по .N... (ответов: 1)
Вопрос № 3863. Уважаемые эксперты. Как можно контролировать состояние процесса(завис он, или нормально работает) за... (ответов: 3)
Вопрос № 3864. Ламерский вопрос: как создать и использовать combobox в Tasm'e. Если можно, то примерчик-другой или ... (ответов: 3)

Вопросов: 10, ответов: 40


 Вопрос № 3854

Здравствуйте, уважаемые эксперты!
Не могли бы вы объяснить мне две вещи:
1. Мне нужно написать что-то типа генератора случайных чисел (говоря "вроде", я имею в виду,
что можно брать значение таймера) - я знаю примерно как сделать это в дос (считать таймер), а
как в Windows?
2. Вот считали допустим какое то число, а у меня есть диапазон, в котором должны лежать "случайные"
числа (например, от 100000 до 355000). Как привести значение таймера к числу из этого диапазона?
Если можно, то укажите конкретные формулы, плз.



Вопрос отправлен: 06.08.2003, 03:50
Отправитель: nnn

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Приветствую Вас, nnn!
Чистейшая арифметика!
rnd*(X1-X0)+X0
по моему так.
rnd возвращает от 0 до 1.
Вот генератор случ.чисел.
берёшь случ.число в диапазоне X1-X0.
Потом прибавляешь X0.
;----------
;Мощный генератор случайных чисел. IN -> AX-range; OUT -> AX-число 0...AX-1;
;Взят из C++;
proc Rnd ;=========================================================
push bx cx dx ax
mov bx,3
mov cx,43FDh
mov ax,wptr [bp+Seed-dat]
mov dx,wptr [bp+Seed+2-dat]
push bx ax
or bx,dx
mov bx,cx
jnz rnd_1_1
mul bx
pop ax bx
jmp rnd_1_2
rnd_1_1:
mul bx
mov cx,ax
pop ax dx
push ax
mul dx
add cx,ax
pop ax
mul bx
add dx,cx
rnd_1_2:
add ax,9EC3h
adc dx,26h
mov wptr [bp+Seed-dat],ax
mov wptr [bp+Seed+2-dat],dx
mov ax,dx
and ah,127
pop cx
cwd
idiv cx
mov ax,dx
pop dx cx bx
ret
endp
;---------
sub ah,ah ;Установим начальное RND
int 1Ah
mov wptr [bp+Seed-dat],dx
mov wptr [bp+Seed+2-dat],cx


Ответ отправлен: 06.08.2003, 17:51
Отправитель: Евгений Иванов


Отвечает Tigran K. Kalaidjian

Доброе время суток, nnn!
1. А что такого ? Возьмите, например, текущее время(кол-во сек, мин, часов, месяцев, лет и пр.) затем путем некоторых мат. преобразований(на Ваш вкус) получите некоторое число - чем не семя рандомизации ?
Далее просто используйте Ваш любимый алгоритм.
Если интересует именно алгоритм получения ПСЧ, то читайте Зубкова или ответ на вопрос 3219 данной рассылки.
2. Может это не самый рациональный способ, но почему бы просто не отсеивать всё лишнее. Просто проверяйте - лежит ли сгенерированное число в нужном диапазоне. Если нет, то повторить процесс генерации.

Ответ отправлен: 06.08.2003, 10:56
Отправитель: Tigran K. Kalaidjian


Отвечает vitya

Приветствую Вас, nnn!
1. берешь например апишной функцией GetTickCount().
2. GetTickCount() % 25501 + 10000; (% - операция взятия остатка, mod).
25501 = 35500 - 10000 + 1;


Ответ отправлен: 06.08.2003, 08:00
Отправитель: vitya


Отвечает Zedr0n

Доброе время суток, nnn!
В Windows можно юзать GetTickCount, возвращает количество миллисекунд, прошедших с последней перезагрузки системы.
Подробнее читай в MSDN. Насчет диапазона...
Чем не устраивает такое. Пусть в eax случайное число...
cdq
mov ebx,255000d
div ebx
add edx,100000d
mov eax,edx
Вот так, если по-нормальному, то это просто
(eax mod 255000)+100000, то что тебе надо...
Удачи!

Ответ отправлен: 08.08.2003, 20:38
Отправитель: Zedr0n


Отвечает Bob Johnson

Приветствую Вас, nnn!
1. Таймер можно читать как GetTickCount, timeGetTime и QueryPerformanceCounter. Причем последняя функция имеет наибольшую точность.
2. Взять сколько-то младших битов от таймера, затем привести диапазон числа, состоящего из этих битов в требуемый тебе умножением. Например, нужны числа от 100 до 200, значит требуемый диапазон будет 100. Пусть ты берешь 8 младших битов, т.е. диапазон получаемого тобой числа будет 256 (255). Для приведения необходимо будет поделить полученное число на 2.55, после чего добавить 100.

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson


 Вопрос № 3855

Доброго времени суток, уважаемые эксперты!
Опять возникла проблема - можно ли как-нибудь активизировать программу-нерезидента с помощью клавиатуры? То есть суть в следующем: есть прога, которая что-то там считает. Я нахожусь, например, в ворде. Можно ли поставить сочетание клавиш на активизацию этой проги?
Заранее большое спасибо.



Вопрос отправлен: 06.08.2003, 06:16
Отправитель: Ренат

[Следующий вопрос >>] [Список вопросов]

Отвечает dimka

Добрый день, Ренат!
По-мойму, если прога нерезедент, то ни черта не получится!!!

Ответ отправлен: 06.08.2003, 10:56
Отправитель: dimka


Отвечает Tigran K. Kalaidjian

Приветствую Вас, Ренат!
Т.е. переключиться на неё? Используйте Alt+Tab.

Ответ отправлен: 06.08.2003, 11:01
Отправитель: Tigran K. Kalaidjian


Отвечает Hangatyr

Приветствую Вас, Ренат!
Можно поставить глобальный hook на WH_KEYBOARD, правда придется его запихать в dll. Подробности можно посмотреть в msdn. Не совсем, конечно, то, что тебе нужно...

Ответ отправлен: 06.08.2003, 07:21
Отправитель: Hangatyr


Отвечает Eugene

Добрый день, Ренат!
Положи иконку на эту прогу на десктоп и в её свойствах пропиши shortcut key. Например ctrl+alt+t. Тогда при работе в ворде нажимаешь ctrl+alt+t и запускается твоя прога.

Ответ отправлен: 06.08.2003, 10:01
Отправитель: Eugene


Отвечает masquer

Добрый день, Ренат!
в винде в общем нет понятия "резидент". Если хочешь, чтобы прога всплывала по клавише - копай в сторону хуков. Посмотри архивы - сто раз это обсуждалось.

Ответ отправлен: 06.08.2003, 11:23
Отправитель: masquer


Отвечает Евгений Иванов

Доброе время суток, Ренат!
Тут даже Ассемблер не надо.
Берёшь делаешь ссылку в главном меню и ставишь там быструю клавишу.
А так нужно регистрировать быструю клавишу.
The following function creates a hot-key control, uses the HKM_SETRULES and HKM_SETHOTKEY messages to initialize it, and returns a handle to the control. This hot-key control does not allow the user to choose a hot key that is a single unmodified key, nor does it permit the user to choose only SHIFT and a key. (These rules effectively prevent the user from choosing a hot key that might be accidentally entered while typing text.)
// InitializeHotkey - creates a hot-key control and sets rules
// and default settings for it.
// Returns the handle of the hot-key control.
// hwndDlg - handle of the parent window (dialog box)
//
// Global variable
// g_hinst - handle of the application instance
extern HINSTANCE g_hinst;
HWND WINAPI InitializeHotkey(HWND hwndDlg)
{
// Ensure that the common control DLL is loaded.
InitCommonControls();

hwndHot = CreateWindowEx(
0, // no extended styles
HOTKEY_CLASS, // class name
"", // no title (caption)
WS_CHILD | WS_VISIBLE, // style
10, 10, // position
200, 20, // size
hwndDlg, // parent window
NULL, // uses class menu
g_hinst, // instance
NULL // no WM_CREATE parameter
);

SetFocus(hwndHot);

// Set rules for invalid key combinations. If the user
// does not supply a modifier key, use ALT as a modifier.
// If the user supplies SHIFT as a modifier key, use
// SHIFT + ALT instead.
SendMessage(hwndHot, HKM_SETRULES,
(WPARAM) HKCOMB_NONE | HKCOMB_S, // invalid key combinations
MAKELPARAM(HOTKEYF_ALT, 0)); // add ALT to invalid entries

// Set CTRL + ALT + A as the default hot key for this window.
// 0x41 is the virtual-key code for 'A'.
SendMessage(hwndHot, HKM_SETHOTKEY,
MAKEWORD(0x41, HOTKEYF_CONTROL | HOTKEYF_ALT), 0);

return hwndHot;


Ответ отправлен: 06.08.2003, 23:37
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Приветствую Вас, Ренат!
Если ты в виндах, то что ты называешь резидентом?
В виндах есть функция: RegisterHotKey - вот в ее сторону и смотри.

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson


 Вопрос № 3856

Hi all.
Писал ли кто-нибудь софт для гостинниц.
Или быть может в нете встречали.
Подсобите кто чем сможет, хочеться посматреть как это выглядит.
(софтина управляет информацией о свободных номерах, бронь итд)



Вопрос отправлен: 06.08.2003, 06:18
Отправитель: Tibor (tibor_ferencig@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает dimka

Здравствуйте, Tibor!
На Oracle делать нечего!!!

Ответ отправлен: 06.08.2003, 10:42
Отправитель: dimka


Отвечает Tigran K. Kalaidjian

Доброе время суток, Tibor!
А Вы думаете, что кто-то даст Вам за просто так исходник программы для коммерческого применения?
Пардон, но это конференция для начинающих ассемблерщиков, Вы не туда попали, видимо.

Ответ отправлен: 06.08.2003, 10:39
Отправитель: Tigran K. Kalaidjian


Отвечает Maverick

Доброе время суток, Tibor!
Насчет софта, не встречал, но думаю, что большинство пользуются обыкновенной базой данных, да хотябы биловой...


Ответ отправлен: 07.08.2003, 04:29
Отправитель: Maverick


Отвечает Bob Johnson

Доброе время суток, Tibor!
А что тут такого - обычная база данных с некоторым интерфейсом... Если хочешь сам написать - вначале узнаешь у заказчика, какие ему будут нужны функции и каким он хотел бы видеть интерфейс. А дальше - за работу. Можешь использовать MS Access, если простая достаточно программа будет (премущества - есть везде, т.к. идет вместе с офисом) или Delphi + какая-либо БД (например, interbase).

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson


 Вопрос № 3858

Подскажите начинающему, где найти принципиальную схема на микропроцессоре
с детально разработанной программой на Asm.
Спасибо.



Вопрос отправлен: 06.08.2003, 08:50
Отправитель: Андрей

[Следующий вопрос >>] [Список вопросов]

Отвечает dimka

Добрый день, Андрей!
Странный вопрос:непонял(перефразируй)

Ответ отправлен: 06.08.2003, 10:35
Отправитель: dimka


Отвечает Tigran K. Kalaidjian

Добрый день, Андрей!
Если Вас интересуют общие принципы работы (и построения) процессоров и схем на их основе, а также программирование, то читайте книгу Ч.Петцольда "КОД". Для начинающего это то, что надо !

Ответ отправлен: 06.08.2003, 10:21
Отправитель: Tigran K. Kalaidjian


Отвечает Евгений Иванов

Здравствуйте, Андрей!
Попробуй здесь:
http://telesys.ru/projects.shtml


Ответ отправлен: 06.08.2003, 23:37
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Здравствуйте, Андрей!
Прежде всего - схему чего? На микропроцессоре половина изделий сделана...

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson


 Вопрос № 3859

Как узнать кратно ли число 13!!!
спасибо!!!



Вопрос отправлен: 06.08.2003, 12:31
Отправитель: Corban Dalas (corban_dalas@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Tigran K. Kalaidjian

Доброе время суток, Corban Dalas!
1. Мат. Решение: Число N делится на 13 в том и только в том случае, когда на 13 делится число L, полученное из него зачеркиванием последней цифры и прибавлением к полученному числу учетверенного значения этой цифры. Например, число N=52 делится на 13, так как число L=5 + 4*2=13 делится на 13. Если делимость L на 13 неочевидна, то можно повторить тот же процесс с L.
2. Решение программиста на языке паскаль:
const n=15;
var del: boolean;
begin
if n mod 13 = 0 then del:=false else del:=true;
end.


Ответ отправлен: 06.08.2003, 14:18
Отправитель: Tigran K. Kalaidjian


Отвечает Zedr0n

Здравствуйте, Corban Dalas!
Признака делимости на 13 простого, насколько я знаю нет, то есть, как у 2,3,5,7,9,11, поэтому простейший способ -
поделить на 13, например так(пусть в eax - само число)
push eax
push edx
cdq
mov ebx,13
div ebx
test edx,edx
jnz divisible
pop edx
pop eax
non_divisible:
pop edx
pop eax




Ответ отправлен: 08.08.2003, 20:41
Отправитель: Zedr0n


Отвечает vitya

Добрый день, Corban Dalas!
элементарно, если остаток от деления на 13 равен 0.

Ответ отправлен: 06.08.2003, 12:41
Отправитель: vitya


Отвечает dimka

Приветствую Вас, Corban Dalas!
...
mov ax,100
test ax,13
jne m1
...

Ответ отправлен: 06.08.2003, 12:41
Отправитель: dimka


Отвечает Gibbel

Приветствую Вас, Corban Dalas!
mov ax,число
mov bx,13
xor dx,dx
div bx
cmp dx,0
jnz не_кратно

Ответ отправлен: 06.08.2003, 12:51
Отправитель: Gibbel


Отвечает Ayl

Здравствуйте, Corban Dalas!
mov ax, chislo
mov bl, 13
div bl
or ah, ah
jz @@yes ; если остаток = 0, то кратно


Ответ отправлен: 06.08.2003, 12:53
Отправитель: Ayl


Отвечает masquer

Добрый день, Corban Dalas!
Кратно чему? Если степеням двойки, то первые n битов равны 0. n - степень двойки. Для остальных div используй.

Ответ отправлен: 06.08.2003, 13:02
Отправитель: masquer


Отвечает Евгений Иванов

Приветствую Вас, Corban Dalas!
Оно кратно! Кратно числу 26! И 39! Это точно!
:-)
Оно нечётное.
А так оно не делится без остатка на любое другое число.
Ещё это чёртова дюжина.
Обычно пятница 13 - очень весёлый день!
В общем, забавное число!


Ответ отправлен: 06.08.2003, 23:43
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Приветствую Вас, Corban Dalas!
Разделить его на 13 и проверить, что остаток равен нулю (остаток помещается в dx).

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson


 Вопрос № 3860

К вопросу 3856
2Tigran K. Kalaidjian, мне исходники не нужны!



Вопрос отправлен: 06.08.2003, 13:13
Отправитель: Tibor (tibor_ferencig@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает dimka

Доброе время суток, Tibor!
.

Ответ отправлен: 07.08.2003, 10:53
Отправитель: dimka


 Вопрос № 3861

· Уважаемые эксперты!
Помогите разобраться.Вроде все правильно и Clipboard не пустой,но моей строки там нет.Самое интересное,что этот же код в С работает без проблем.Здесь были предложения использовать LOCALE,но в С я же его не использовал?!
Спасибо.


Приложение:


Вопрос отправлен: 06.08.2003, 14:03
Отправитель: Yuriy (g.u@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Здравствуйте, Yuriy!
Я чуть-чуть изменил, но в принципе все тоже самое - все работает.
...
invoke GlobalAlloc,GHND,eax
mov edi,eax
mov ebx, [edi]
invoke lstrcpy,ebx,addr StringToPutToClipboard
invoke OpenClipboard,0
invoke EmptyClipboard
invoke SetClipboardData,CF_TEXT,edi
...

Ответ отправлен: 06.08.2003, 14:46
Отправитель: masquer


Отвечает Zedr0n

Добрый день, Yuriy!
Во-первых, совет общего свойства. Не надо использовать lstrlen/lstrcpy и т.д... Для этого есть строковые операции в асме, да и быстрее будет. Зачем прогать на асме, если в программе используются только WinApi функции?
В Вашем случае вообще надо использовать sizeof, так как строка уже определена...
А прога естественно работать не будет. Вы когда вызываете lstrcpy, ему что передаете? Надо вызывать так:
invoke lstrcpy, pGlobal, offset StringToPutToClipboard
А вы передали ссылку на ссылку(так как добавили addr перед
pGlobal). А вообще прежде чем задавать такие вопросы,
надо посмотреть, что происходит в отладчике...
Извиняюсь за такой резкий тон ;)


Ответ отправлен: 08.08.2003, 20:50
Отправитель: Zedr0n


Отвечает Евгений Иванов

Здравствуйте, Yuriy!
На Ассемблере пишешь не так, как на C.
Проверь!
И нужно создавать память с помощью GlobalAlloc
with the GMEM_MOVEABLE and GMEM_DDESHARE flags.


Ответ отправлен: 06.08.2003, 23:40
Отправитель: Евгений Иванов


 Вопрос № 3862

Hi,
Где можно взять документацию по IL .Net и вообще стоит ли её читать, почему то авторы книг по .Net часто приводят результаты ILDasm.exe.
Best regards. Grigory.



Вопрос отправлен: 06.08.2003, 16:35
Отправитель: Grigory Bushuev (gbush@penza.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает dimka

Доброе время суток, Grigory Bushuev!
Не читал-не знаю!!

Ответ отправлен: 07.08.2003, 10:50
Отправитель: dimka


 Вопрос № 3863

Уважаемые эксперты.
Как можно контролировать состояние процесса(завис он, или нормально работает) запущенного функцией ShellExecute. Его HWND имеется.



Вопрос отправлен: 06.08.2003, 16:41
Отправитель: Anna

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Доброе время суток, Anna!
А что означает, что процесс "завис"? С точки зрения компьютера он не завис, а продолжает работать абсолютно так же как и все остальные процессы. И HWND имеется не у процесса, а у его окна. И этого HWND не достаточно, чтобы завершить процесс, так как даже если закрыть окно, то процесс может остаться работать (или висеть :).

Ответ отправлен: 07.08.2003, 07:29
Отправитель: ASMодей


Отвечает masquer

Доброе время суток, Anna!
Ну так если HWND имеется, то всеми функциями, которые его используют, можно пользоваться. А при чем тут ShellExecute? Или вы полагаете, что то, что возвращает ShellExecute это - hWnd запущенного процесса? :)))))))))))
Девушка, MSDN курите до полного изнеможения.

Ответ отправлен: 07.08.2003, 11:17
Отправитель: masquer


Отвечает Zedr0n

Приветствую Вас, Anna!
Никак нельзя. Потому что HWND к процессу очень мало отношения имеет, он только к окнам. Запускать приложения надо с помощью CreateProcess, так как он возвращает
структуру PROCESS_INFORMATION, после чего с помощью hProcess, можно процесс прибить, например так:
invoke TerminateProcess,eax
где в eax - hProcess.
А ShellExecute - это не то...


Ответ отправлен: 08.08.2003, 20:54
Отправитель: Zedr0n


 Вопрос № 3864

Ламерский вопрос: как создать и использовать combobox в Tasm'e. Если можно, то примерчик-другой или ссылочку. Спасибо.



Вопрос отправлен: 06.08.2003, 18:48
Отправитель: Phil aka Philsnick (philsnick@nm.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Zedr0n

Добрый день, Phil aka Philsnick!
Что значит в Tasm'e? По-моему никакой разницы, что в Tasm'e, что в Masm'e, что в Сях нет. Вызываешь CreateWindow
c именем класса "COMBOBOX" и работаешь. Читай MSDN и/или Petzold'a. Если нет MSDN'а, достань, все равно понадобится.
Удачи!


Ответ отправлен: 08.08.2003, 20:57
Отправитель: Zedr0n


Отвечает dimka

Здравствуйте, Phil aka Philsnick!
www.wasm.ru

Ответ отправлен: 07.08.2003, 10:48
Отправитель: dimka


Отвечает Bob Johnson

Здравствуйте, Phil aka Philsnick!
Создается он вызовом функции CreateWindowEx если класс окна имеет значение "Button" и заданы необходимые стили. Более подробно - см. MSDN.
Для работы ему посылаются сообщения BM_GETCHECK и BM_SETCHECK. Первое определяет текущее состояние, второе - позволяет задать его.

* EMan1.4: ---===*** Die young - live free ***===---


Ответ отправлен: 08.08.2003, 15:52
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (28)
Perl (3)
Builder / Delphi (19)
Pascal (25)
Basic / VBA (12)
Java / JavaScript (10)
PHP (7)
Криптография (9)
WinAPI (16)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (52)
"Железо" (43)
Поиск информации (26)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (12)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (7)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное