Форум: "Потрепаться";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
ВнизНужен приличный пример на Win API... Найти похожие ветки
← →
Knight (2004-01-01 02:42) [0]Чтоб не гольное окно, как в большинстве простейших... а более менее рабочее приложение с кнопками, едитами, лэйблами, меню и т.п. но без использования KOL.
← →
Ihor Osov'yak (2004-01-01 02:47) [1]хм.. Имхо, Вы или перепили, или недопили.. Приходи завтра, может что и где кто отыщет..
← →
Игорь Шевченко (2004-01-01 02:50) [2]Ты эта...заказ напиши, что требуется-то :)) А то примеров много :)))
По сабжу: вместе с Platform SDK поставляется много-много демок, они и с меню и с кнопками и с прочими контролами. Переводишь с С и счастья тебе сразу будет даром.
← →
Knight (2004-01-01 02:52) [3]>> Ihor Osov"yak © (01.01.04 02:47) [1]
> хм.. Имхо, Вы или перепили, или недопили..
Скорее второе чем первое... не пьюший я %)
>> Приходи завтра, может что и где кто отыщет...
Так я и не говорил, что нужно прямо щас... просто закинул вопрос, раз уж зашёл, т.к. завтра (в смысле сегодня :) появлюсь тут только после обеда. Ничего особо навороченного не надо, просто посмотреть, как грамотно оформляется код в таких приложениях и обрабатываются события.
← →
Knight (2004-01-01 02:54) [4]И не на Си, а на Делфи... :)
← →
Nous Mellon (2004-01-01 09:58) [5]Кстати меня тоже жутко беспокоит этот вопрос. Мне даже на С сойдет.
Пошел смотреть SDK
← →
Sergey_Masloff (2004-01-01 10:10) [6]Knight © (01.01.04 02:54) [4]
>И не на Си, а на Делфи... :)
Знаешь, WinAPI он что в Це что в Делфи что в Вижуал Басике - одна фигня.
← →
Думкин (2004-01-01 10:10) [7]Можно скачать Петзольда вместе с примерами и переводить потихому с Си - весьма полезная вещь.
← →
Nous Mellon (2004-01-01 10:51) [8]
> Можно скачать Петзольда вместе с примерами и переводить
> потихому с Си - весьма полезная вещь.
Линк плиз.
ЗЫ Про Яндекс знаю.
← →
Knight (2004-01-01 16:00) [9]Мастаки, неужели никто ничего на АПИ не пишет?
← →
Sergey_Masloff (2004-01-01 17:29) [10]Knight ©
>Мастаки, неужели никто ничего на АПИ не пишет?
1) Иди, минералочки попей. Отпустит.
Потом (завтра) если зуд не пройдет - открываешь примеры из SDK и переписываешь. Благо они-то переписываются один в один.
2) На API действительно никто не пишет. По крайней мере все что касается UI. И уже давно. Для тебя это новость?
← →
Nick Dnery (2004-01-01 17:29) [11]2>Автор ветки.
Ну != мастера мне пока не дали =! ( жаль :-)), а вот примерчики есть, в польне приличные, но длинные очень и код местами без оформления...
Так что либо мылом, либо здесь, но за длинность кода прошу не ругаться....
Жду ответа.
← →
Knight (2004-01-01 17:38) [12]>> Nick Dnery (01.01.04 17:29) [11]
Если код не измеряется метрами, то мыло в анкете... :)
← →
Rouse_ (2004-01-01 17:42) [13]Весь VCL довольно хороший пример использования WinAPI...
← →
Nick Dnery (2004-01-01 17:49) [14]2>Rouse_
:-)))))))))))))))))))))))))))))))
2>Knight ну не метрами, но наверно метром...
Вобщем буду отправлять килов по 300...
Там арзберешся.
И есче. В оригинальном виде - не для коммерческого использования.
И снова есче. АПИ но МАСМ32 примеры нужны?
← →
SergP (2004-01-01 18:08) [15]2 Knight ©
Если что-нить добудешь, кинь мне плиз... на любое мыло (они оба рабочие).
А то я когда-то просил на форуме, но либо вообще ответа не получал, либо "гиганты мысли" ограничивались сообщениями подобными тем что в этой ветке..
← →
Nick Dnery (2004-01-01 18:27) [16]2>Sergp
нЕ бузи
2>Knight
Готово, см. почту.
В присланном примере : (WinApi, винапее некуда):
========================================================
1.Создание окон различных виндовых стилей.
2. Работа с ownerdraw menu.
3. работа с Tray icon.
4. Работа с MCI.
5. Работа с реестром.
6. Суперклассинг.
7. Сабклассинг.
8. CommControls.
9. Timers.
и много чего еще. Повторяю. в оригинально виде не для коммерческог использования.
================================================================
Благодарности вем мастерам этого сайта, особенно
Игорю Шевченко.
Анатолию П.
panov.
song. (его пример работы с треем был использован -!)
oolokin"у и k@rt"y за моральную поддержку.
← →
Knight (2004-01-01 18:48) [17]>> Nick Dnery (01.01.04 18:27) [16]
Спасибо, щас проверю, посмотрю... :)
← →
Nick Denry (2004-01-01 18:53) [18]Всмысле Nick Denry (c). А то опечался я.
← →
Knight (2004-01-01 19:28) [19]>> Nick Denry © (01.01.04 18:53) [18]
То что надо! Есть все моменты которые требовались. ОГРОМНОЕ СПАСИБО :)
← →
Думкин (2004-01-01 19:32) [20]
> [8] Nous Mellon © (01.01.04 10:51)
http://podgoretsky.com
Там и лежит, текст книги и примеры. Петзольд - Windows 95.
← →
Nous Mellon (2004-01-01 22:03) [21]
> [20] Думкин © (01.01.04 19:32)
Спасибо.
ЗЫ ИМХО tnx - пошло
← →
Номолос (2004-01-01 22:23) [22]А мож в кладовочке выложите?
← →
Knight (2004-01-02 01:07) [23]Во всех, даже простейших примерах окон на АПИ есть такой кусок:
wm_destroy :
Begin
postquitmessage(0); exit;
Result:=0;
End
Объясните, последовательность exit; Result:=0;
В чем его смысл?
← →
Nick Denry (2004-01-02 01:42) [24]2>Knight.
1.На здоровье
2. WM_DESTROY:
Return Values
If an application processes this message, it should return zero.
Т.е. приложение олжно возвращать 0.
3.The PostQuitMessage function indicates to Windows that a thread has made a request to terminate (quit). It is typically used in response to a WM_DESTROY message.
VOID PostQuitMessage(
int nExitCode // exit code
);
Т.е. уведомляем винду, что мы выходим и дескриптор нафиг уже не нужен. Заодно и говорим код, с которым вышли. как errollevel в DOS , хотя наверное не совсем.
← →
Knight (2004-01-02 02:31) [25]Я имел ввиду последовательность... разве Result будет выполняется после Exit?
Может надо так?
wm_destroy :
Begin
postquitmessage(0);
Result:=0;
exit;
End
← →
Ske4er (2004-01-02 03:25) [26]http://delphi.mtu-net.ru/zip/createwnd.zip
← →
Думкин (2004-01-02 06:39) [27]> [25] Knight © (02.01.04 02:31)
Честно сказать, я весьма удивлен
> Во всех, даже простейших примерах
я, как раз, везде вижу ваш второй вариант.
← →
Rouse_ (2004-01-02 13:26) [28]> [25] Knight © (02.01.04 02:31)
По логике на WM_DESTROY Result не нужен... так как там не Send а Post
Если он тебе мешает, можешь удалить эту строку...
← →
SergP (2004-01-02 15:53) [29]
> Nick Dnery (01.01.04 18:27) [16]
> 2>Sergp
> нЕ бузи
Неужели я сказал что-то обидное? Если да, то дико извиняюсь.
А вообще кто-нить, плиз пришлите мне копию этого... Или в кладовку выложите, если это вас не затруднит.
← →
Nick Denry (2004-01-02 16:22) [30]Да, в строчке явно очепятка. Последовательность скореее всего действительно надо изменить.
Вопрос ко всем : есть у меня несколько действительно веселых наработок на АПИ на дельфи и на МАСМе, хотелось бы их действительно где -нибудь в нете выложить. С исходниками есс-но. Но как это сделать?
← →
Rouse_ (2004-01-02 16:45) [31]> [30] Nick Denry © (02.01.04 16:22)
Если веселые... вышли мне, я их выложу на сайте...
← →
Nick Denry (2004-01-02 16:50) [32]Не rouse, твой сайт я знаю, это круто. Я имел ввиду под словом веселые - сложность кода. Это там где он вылизан до запятой и размер исходника килобайт на 20-30 (иногода меньше) превышает размер екзешника. А для воего сайта подойдет только
Поздравлялка Универсальная (с). С цветочками, для девушек. На днях вышлю, посмотришь.
← →
Knight (2004-01-02 17:20) [33]>> Думкин © (02.01.04 06:39) [27]
Ну не знаю... а у меня сколько примеров и везде одно, даже в русском хелпе по WinAPI, в примере как создать минимально окно, следующее...
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult;
stdcall;
Begin
case msg of
wm_destroy :
Begin
postquitmessage(0); exit;
Result:=0;
End
else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
Ну да ладно... не суть важно.
Ещё вопрос. Искал как создать подобие панели получился такой вариант:
Panel1:= CreateWindow("STATIC",PChar(""), WS_DLGFRAME or WS_CHILD or WS_VISIBLE or SS_NOTIFY,97,12,100,100, MainWnd,0,hInstance,nil);
Так она делается?
← →
Knight (2004-01-02 17:51) [34]И ещё... почему кнопка созданная на главном окне нажимается, а на моей панели - нет?
← →
SPeller (2004-01-02 18:03) [35]2 Knight
Перешли, пожалуйста, мне тот этот архивчик. Интересно некоторые вещи посмотреть, авось чего-то не знаю :-) Особенно супер/субклассинг и MCI.
← →
SPeller (2004-01-02 18:06) [36]
> почему кнопка созданная на главном окне нажимается, а на
> моей панели - нет?
Попробуй панели указать стили WS_CLIPCHILDREN и WS_CLIPSIBLINGS, а кнопке обязательно WS_CHAILD.
← →
Knight (2004-01-02 18:50) [37]>> SPeller © (02.01.04 18:03) [35]
> Перешли, пожалуйста, мне тот архивчик.
Только если Nick Denry добро даст... :)
← →
Nick Denry (2004-01-02 19:23) [38]2>Knight ©
Даю добро. :-)))))))))))))))))))))
А то мой траффик скоро накроется.
И еще : выдержка из Iczelion:
Windows 95 принесла несколько новых элементов пользовательского интерфейса, сделавших GUI более разнообразным. Hекоторые из них широко использовались и в Windows 3.1, но программисты должны были программировать их самостоятельно. Теперь Микрософт включил их в Windows 9x и NT. Мы изучим их в этом туториале.
Вот список новых контролов:
Toolbar
Tooltip
Status bar
property sheet
property page
Tree view
List view
Animation
Drag list
Header
Hot-key
Image list
progress bar
Right edit
Tab
Trackbar
Up-down
Тебе для полного счастья нужен toolbar. Сам туториал ищи на www.wasm.ru, если не найдешь, то тогда конечно могу переслать.
И снова еще :-)))))))))))))
Часто, очень часто хорошие (точнеее профессиональные)примеры использования АПИ встречаются как раз в МАСМовских прмерах.
← →
Nick Denry (2004-01-02 19:45) [39]Прочитал еще раз твой вопрос про кнопку:
Походу, ты создаешь кнопку на статие со стилем WS_CHILD, и он является родительским окном для твоей кнопки, он и мессагу wm_command получает.
Копай в сторону toolbar.
выдержка оттуда же:
Class Name Common Control
Имя класса Common Control"ы
ToolbarWindow32 Toolbar
tooltips_class32 Tooltip
msctls_statusbar32 Status bar
SysTreeView32 Tree view
SysListView32 List view
SysAnimate32 Animation
SysHeader32 Header
msctls_hotkey32 Hot-key
msctls_progress32 progress bar
RICHEDIT Rich edit
msctls_updown32 Up-down
SysTabControl32 Tab
← →
Knight (2004-01-02 19:48) [40]С кнопкой я разобрался... просто скопировал создание окна с лэйбла и не изменил координаты, поэтому хоть кнопка и выводилась поверх неё, но почему-то события уходили на текст, а кнопка оставалясь в пролёте. Закоментировал Label и кнопка заработала :)
← →
Knight (2004-01-02 20:28) [41]SPeller © (02.01.04 18:03) [35]
Отправил
← →
SergP (2004-01-02 21:01) [42]
> Knight © (02.01.04 18:50) [37]
> >> SPeller © (02.01.04 18:03) [35]
> > Перешли, пожалуйста, мне тот архивчик.
> Только если Nick Denry добро даст... :)
> Knight © (02.01.04 20:28) [41]
> SPeller © (02.01.04 18:03) [35]
> Отправил
Насколько я понял - в отношении меня добро не было дано. Ну что ж, несколько примеров я уже сам нашел среди всего того что когда-то качал из кладовки, и кроме того посмотрел
Ske4er © (02.01.04 03:25) [26]
Кстати вопрос: Почему при компиляции этого примера [26] в Д5 получаем экзешник размером около 15 Кб, а при компиляции в Д6 размер экзешника около 10 Кб ?
← →
Nick Denry (2004-01-02 21:55) [43]Блин. Да шлите вы хоть обошлитесь все. Меня в этом отношении интересует только одна весчь. Чтоб ее не продавали, а если кто и сумеет, то просьба присылать процентов 20, хотябы.
:-)))
Я не жадный. Давно хочу их куда - нибудь выложить, даже сайт сотворил, но никак хост не найду. А выкладываеть есть что. Может кто чем поможет?
← →
konstantinov (2004-01-03 01:10) [44]К стати... Заморочился в одно время с ScreenSaver там желательно размер ехешника сделать минимальным. Писал по шаблону найденному на этом форуме с использованием диалога настройки помещенного в файл ресурсов. Стало интересно начал рыться в ресурсах чужих программ. В WinAmp например все мыслимые н немыслимые диалоги вынесены в ресурсы. Подозреваю, что так поступают, когда хотят сделать приложение максимально гибким, интенациональным и не требующем перекомпиляции при переводе на другой язык. Следовательно - вынос всех диалоговых окон, меню и пр. в ресурсы - правило хорошего тона в программировании. Прав я или нет?
← →
Nick Denry (2004-01-03 01:40) [45]2>konstantinov ©
(Это мое личное ИМХО, сколько с этим сталкиваюсь 1,5 года на АПИ)
================================================================
Фактически это так, если дело не касается чего-либо динамического как раз. В этих случаях (хотя и не всегда, принято ползоваться окнами). А диалоги ресурсы меню и т.д. действительно удобнее: во-первых визуальность (при использовании хорошего редактора), во - вторых "интернациональность", а так же гибкость и отсутсвие кода для большинства операции.
Пример из диалога:
CONTROL "HEAD", 2131, "STATIC", SS_BITMAP | SS_NOTIFY | WS_GROUP, 1, 0, 180, 21, WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE, 2131
Это статик, с именем битмапа "HEAD", в ресурсе. При показе диалога сразу рисует битмап.
← →
Юрий Зотов (2004-01-03 01:41) [46]> konstantinov © (03.01.04 01:10) [44]
> вынос всех диалоговых окон, меню и пр. в ресурсы - правило
> хорошего тона в программировании
Это даже не правило хорошего тона, а просто правило. До появления RAD-систем именно так и делалось (собственно, других способов и не было). Да и RAD-системы делают практически то же самое, только уже без нашего участия.
> и не требующем перекомпиляции при переводе на другой язык.
Если просто вынести в ресурсы EXE, то перекомпиляция все же потребуется. А вот если вынести в ресурсы DLL, то в EXE будет достаточно просто загрузить нужную DLL, и все.
← →
Nick Denry (2004-01-03 01:45) [47]2>Юрий Зотов ©
ИМХО имеется ввиду перекомпиляция не ресурсов. Как раз имеется ввиду, что не нужно что-то делать с файлом ресурсов .rc / .res / .obj Что бы в экзешнике стались те же диалоги.
← →
konstantinov (2004-01-03 02:24) [48]Я не правильно выразился. Конечно перекомпиляция необходима, но
с помощью Restorator простой пользователь запросто сможет изменить любые надписи меню и прочее на угодные ему не имея ни малейшего понятия как и что в этом приложении работает.( лично я так и сделал ) и даже немножко побезобразничал на работе добавив в WinAmp надписи типа "Сидоров! Кончай маеться дурью! Работай!".:))
← →
Nick Denry (2004-01-03 02:28) [49]И это тоже.
← →
SergP (2004-01-03 03:33) [50]2 Knight ©
Получил. Спасибо...
← →
kkk1 (2004-01-03 05:37) [51]Удалено модератором
← →
vidiv (2004-01-03 06:31) [52]А как сделать полупрозрачное окно?
← →
Nick Denry (2004-01-03 15:21) [53]2>vidiv
patches или Alph...(не помню) короче MSDN RTFM
← →
Nous Mellon (2004-01-04 20:11) [54]Сорри за глупый вопрос но хотелось бы узнать где конкретно смотреть Platform SDK
Если в дире где стоит Visual Studio .NET то там их штуки три причем во всех немного примеров. А тут говорили что их там куча. Может я не там смотрю?
← →
Игорь Шевченко (2004-01-04 21:11) [55]Nous Mellon © (04.01.04 20:11)
Platfrom SDK скачивается или устанавливается с www.microsoft.com
или покупается на компакт-диске. Примеров там 12987 файлов в 1548 каталогах общим объемом в 146 мегабайт с хвостиком. (PSDK OCT 2002)
← →
Nous Mellon (2004-01-04 21:18) [56]
> Platfrom SDK скачивается или устанавливается с www.microsoft.com
Спасибо, а нельзя ли его на каких-нибудь еще дисках взять? Может с МСДН?
← →
Игорь Шевченко (2004-01-04 22:17) [57]Два Platform SDK выходили на компактах к журналу RSDN :)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.007 c