Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.23;
Скачать: CL | DM;

Вниз

Нужен приличный пример на 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 и кнопка заработала :)



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

Текущий архив: 2004.01.23;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.02 c
3-72687
pashaz
2003-12-25 10:40
2004.01.23
Удаление пробелов


1-72750
Voice
2004-01-14 12:01
2004.01.23
Путь к файлу из переменной типа file of...


14-72872
Saimon
2004-01-04 04:48
2004.01.23
Никак не могу запихнуть иконку в SysTrey.


7-72964
*FoX*
2003-10-25 12:19
2004.01.23
Файлы


14-72932
Gero
2003-12-31 23:07
2004.01.23
Админы! Проснитесь!