Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Вниз

Кнопка на API   Найти похожие ветки 

 
Unk   (2002-06-20 08:45) [0]

Как сделать кнопку на форме только с использованием ф-ций API? Ну только чтоб конечно она была полно функциональной... :)

Может подскажите ссылочку где можно увидетьи кнопку и другие компоненты?


 
Игорь Шевченко   (2002-06-20 09:06) [1]

StdCtrls.pas

Объясните мне, ради бога, на хрена делать кнопки на API ? :-)


 
Kaban   (2002-06-20 09:16) [2]

А они все думают, что чем больше кнопок на API, тем меньше размер приложения


 
Evgeny   (2002-06-20 11:01) [3]

>Игорь Шевченко
>Kaban
Объясняю непонятливым: Форум посвящен WinAPI, и человек вправе задать вопрос касающийся любой темы с применением WinAPI, также он вправе рассчитывать на ответ. Сарказм здесь совсем не уместен.

>Unk
The following example shows how to use the CreateWindow function to create a default push button.

hwndButton = CreateWindow(
"BUTTON", // predefined class
"OK", // button text
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // styles

// Size and position values are given explicitly, because
// the CW_USEDEFAULT constant gives zero values for buttons.
10, // starting x position
10, // starting y position
100, // button width
100, // button height
hwnd, // parent window

NULL, // No menu
(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),
NULL); // pointer not needed


А вообще в справке по Delphi это все имеется и этот пример только что скопирован оттуда.


 
Alexander Vorobyov   (2002-06-20 11:41) [4]

В дополнение к сказанному Evgeny: у формы (чей hwnd использовался при создании кнопки) нужно перекрыть событие WM_COMMAND и если (HWND)lParam совпадает с hwndButton - произошло нажатие кнопки (если я ничего не упустил ;).


 
Игорь Шевченко   (2002-06-20 14:18) [5]

Evgeny © (20.06.02 11:01)

Обычно вопросы в этом форуме подразумевают наличие некоторого уровня знаний, не так ли ? :-)

С уважением,


 
МИФИст   (2002-06-20 17:39) [6]

>Игорь Шевченко
Хочешь сказать чайникам здесь не место? А откуда ты знаешь, что знаний у него не побольше чем у тебя только в другой области, где ты чайник? Что-то при регистрации на сайте я не видел ограничений по IQ да и тестов никаких не было. А вопрос как вопрос, даже интересный.


 
Игорь Шевченко   (2002-06-20 17:43) [7]

МИФИст © (20.06.02 17:39)

Не чайники начинают с чтения FAQ, или, на худой конец, Чарьза Петцольда :-)


 
Evgeny   (2002-06-21 05:16) [8]

>Игорь Шевченко
Не забывай все когда-то начинали с нуля.


 
Игорь Шевченко   (2002-06-21 09:54) [9]

Evgeny © (21.06.02 05:16)

Безусловно.
Откровенно говоря, в тот момент меня достали ламерские вопросы, отсюда и такой тон (20.06.02 09:06) :-))


 
Song   (2002-06-21 11:11) [10]

Действительно, Евгений, Мифист, употребление АПИ должно предполагать знание в этой области. Вы когда-то запускали Дельфи первый раз и увидеди пустую форму и подставленный шаблон кода на VCL"е. Где-нибудь здесь есть АПИ? Нет, конечно. Т.е. мы делаем вывод что АПИ потребовался для той ситуации, когда возможностей стандратного VCL стало не хватать или соотвествующая процедура генофонда работает криво. Вот этот момент как раз и предполагает опыта, т.е. к тому моменту вы уже знаете, что такое АПИ, с чем его едят и как использовать. Разве нет?
CreateWindow() - это основа создания окон АПИ, если человек не знает как использовать эту инструкцию или никогда не слыщал о ней, ему не стоит пока переходить на АПИ, ИМХО. В том числе и когда он где-то там от кого-то там слышал, что дескать написав программу на АПИ можно сделать exe файл размером с небольшую утилитку.. этого желания недостаточно. Надо иметь хотя бы маломальское представление о структурах АПИ. Когда такое знание будет, вопросы "Как создать контрол на АПИ" возникать не будут автоматически.
Чайникам здесь самое место но после прочтения минимального необходимого объёма литературы или хотя бы отдельных глав дабы иметь минимальное представления и не спрашивать об очень простых вещах (подземный стук в интерпретации Анатолия Подгорецкого). И не забывайте коллеги, что тон вопроса и содержание вопроса, правильная его форма - это уже полпобеды. Если нужно пальцевать - то на хакер.ру, там это приветсвуется.


 
Kaban   (2002-06-21 14:31) [11]

Полностью поддерживаю Song.
Человек спрашивает как создать кнопку на форме с помощью API. Эта операция имеет смысл только, если само окно создано на API, т.е. человек знаком с функцией CreateWindow(). Отсюда вытекает, что вопрос сам по себе бессмысленный. Поэтому и возникают вопросы, зачем это все нужно.

Дело в том, что исходники VCL содержат массу интересного. Иногда полезнее покопаться именно в них, а не посылать вопрос на форум. Когда я начинал осваивать API, я скачал из интернета программку, написанную полностью на API и полностью строчка за строчкой разобрался как она работает. Человек, которому такой способ обучения кажется скучным и неинтересным, навсегда останется новичком и никогда не достигнет высокого уровня.

Меня последнее время тоже задолбали однотипные вопросы, типа как раскрасить в разные цвета ListView, как отбразить ProgressBar во время выполнения запроса, как поместить иконку на DeskTop. Ведь при входе на форум ясно сказано: поищите, посмотрите в FAQ. А им лень. На такие вопросы и отвечать не хочится. Отсюда и сарказм.


 
МИФИст   (2002-06-21 21:59) [12]

Ладно уболтали. Хотя, а вдруг человек задумался о переносимости на другой язык (С), и начал с малого сначала кнопки, потом уже и саму форму =)
Хотя когда мне стало интересно про API я честно купил книжки и нашёл там много интересного, да и книги я покупал не дорогущие, а по 40 р.
А может просто лень или времени нет.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
4-85291
Twin
2002-06-20 15:55
2002.08.26
hwnd


6-85147
Cyrex
2002-04-28 15:44
2002.08.26
Где можно найти описание Internet Component Suite на русском?


1-84971
Bartik
2002-08-15 16:23
2002.08.26
Как создать Help`арь?


3-84904
Zelius
2002-07-26 17:19
2002.08.26
Грабли от MS SQL 2000 в виде MSDE!


3-84937
Martyn
2002-08-05 11:55
2002.08.26
Помогите разобраться с Invalid floating point operation...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский