Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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 и кнопка заработала :)



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

Форум: "Потрепаться";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.013 c
1-72784
Марат
2004-01-13 11:57
2004.01.23
Button1


14-72916
Думкин
2004-01-02 06:31
2004.01.23
С Днем Рождения! 2 января.


1-72755
Austin
2004-01-13 03:43
2004.01.23
удалить запись из файла


1-72827
MVova
2004-01-13 15:41
2004.01.23
TADOConnection и TThread


8-72838
Tol-12
2003-09-12 23:26
2004.01.23
Gif





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский