Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [Все]   Вниз
  Печать  
Автор Тема: Win32 приложения  (Прочитано 45226 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ninja1111
Новенький

de
Offline Offline

« : 03-09-2011 10:41 » 

Здравствуйте всем!
Я начинающий программист и недавно начал писать subj, вместо консольных программок.
Но это же ужас какой-то, за окном 2011 год, а всё нужно до сих пор писать вручную. Это же простое приложение с парой контролов уже занимает кучу времени (у меня по крайней мере). Неужели нет других путей, чтобы можно было набросать всё на форму аля борланд буилдер, только без кучи мусорного vcl и сосредотчить основное внимание непосредственно на программировании, а не на выравнивании всяких кнопочек и и Edit-полей в ресурс файлах?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 03-09-2011 10:51 » 

Другие пути есть.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ninja1111
Новенький

de
Offline Offline

« Ответ #2 : 03-09-2011 10:53 » 

Другие пути есть.
Вот их и хотелось бы узнать Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 03-09-2011 11:34 » 

Ну надо только очень захотеть. Сформулировать задачу, а потом уже искать пути её решения. Если честно, то совершенно непонятно, как можно тратить кучу времени на приложение с парой контролов, даже если их нужно "выравнивать". Может ты что-то не так делаешь?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 03-09-2011 11:43 » 

Ninja1111, выравнивание и раскрашивание кнопочек в 2011 году модно отдавать на outsourcing профессиональному дизайнеру. Нужно лишь выбрать инструмент, в котором фазы вёрстки и анимации пользовательского интерфейса и программирования логики приложения достаточно хорошо отделяются друг от друга.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ninja1111
Новенький

de
Offline Offline

« Ответ #5 : 03-09-2011 13:27 » 

Ninja1111, выравнивание и раскрашивание кнопочек в 2011 году модно отдавать на outsourcing профессиональному дизайнеру. Нужно лишь выбрать инструмент, в котором фазы вёрстки и анимации пользовательского интерфейса и программирования логики приложения достаточно хорошо отделяются друг от друга.
Ну я пишу софт для себя, для универских нужд всяких... О каких ещё дизайнерах речь.
Ну надо только очень захотеть. Сформулировать задачу, а потом уже искать пути её решения. Если честно, то совершенно непонятно, как можно тратить кучу времени на приложение с парой контролов, даже если их нужно "выравнивать". Может ты что-то не так делаешь?
Всё делаю "так", по тутору этого замечательно человека, http://www.winprog.org/tutorial/
« Последнее редактирование: 03-09-2011 19:58 от RXL » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 03-09-2011 13:56 » 

а... вот оно к чему все это вело...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ninja1111
Новенький

de
Offline Offline

« Ответ #7 : 03-09-2011 13:57 » 

а... вот оно к чему все это вело...
вы об чём?
Записан
zubr
Гость
« Ответ #8 : 03-09-2011 14:13 » 

Ninja1111, выравнивание и раскрашивание кнопочек в 2011 году модно отдавать на outsourcing профессиональному дизайнеру. Нужно лишь выбрать инструмент, в котором фазы вёрстки и анимации пользовательского интерфейса и программирования логики приложения достаточно хорошо отделяются друг от друга.
Dimka, так дизайнер только нарисует, а реализовывать то все равно программисту надо.
Записан
darkelf
Молодой специалист

no
Offline Offline

« Ответ #9 : 03-09-2011 14:18 » 

Неужели нет других путей, чтобы можно было набросать всё на форму аля борланд буилдер, только без кучи мусорного vcl и сосредотчить основное внимание непосредственно на программировании, а не на выравнивании всяких кнопочек и и Edit-полей в ресурс файлах?
Вместо мусорного vcl-я можно взять любой другой тулкит, их сейчас есть довольно много, как-то QT, GTK+, wxWidgets и другие.
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 03-09-2011 15:03 » 

Ninja1111, люди не любят API) оно их пугает)
но писать на нем графику - это действительно жесть...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 03-09-2011 15:08 » 

darkelf, а чем тебе VCL не угодил?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 03-09-2011 15:48 » 

Цитата: zubr
Dimka, так дизайнер только нарисует, а реализовывать то все равно программисту надо.
Так его именно рисование и напрягает - я так понял.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
darkelf
Молодой специалист

no
Offline Offline

« Ответ #13 : 03-09-2011 16:03 » 

darkelf, а чем тебе VCL не угодил?
я просто процитировал автора исходного сообщения.
Записан
zubr
Гость
« Ответ #14 : 03-09-2011 17:01 » 

Цитата
Так его именно рисование и напрягает - я так понял.
Как я понял из вопроса, напрягает написание много кода по созданию и отрисовке контролов, используя только WinAPI.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 03-09-2011 18:04 » 

Помню, в VC5 и VC6 были редакторы диалогов. Возможно прогресс и прям пошел вспять и теперь нужно все время тратить "на выравнивании всяких кнопочек и и Edit-полей в ресурс файлах"?  Быть такого не может
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 03-09-2011 18:19 » 

мне несколько раз приходилось править отображение в проектах на WinAPI...
так вот это действительно гемор.
в VS редактор диалогов есть. а для формы - вроде только вместе с MFC.
и если писать действительно на чистом API - то одно расположение контролов на главном окне отнимает много сил.
так как после открытия главного окна, надо ручками сделать CreateWindows с координатами и свойствами для каждого контрола. что то типа такого на каждую кнопку
Код: (C)
        // Create a push button
        HWND hWndButton=CreateWindowEx(NULL,
                L"BUTTON",
                L"Тынц",
                WS_TABSTOP|WS_VISIBLE|
                WS_CHILD,
                420,
                10,
                80, 30,
                hwnd,
                (HMENU)10005,
                GetModuleHandle(NULL),
                NULL);

и вот эти "420,    10,    80,   30," считать, да еще потом 10005 в ресурсы заносить...

в самой обработке проблем нет, но вот рисовать действительно выматывает. и не дай бог потом что то местами переставить)
« Последнее редактирование: 03-09-2011 18:23 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #17 : 03-09-2011 18:31 » 

На чистом API сейчас пишут только в основном вирусописатели, там где размер файла критичен.
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 03-09-2011 18:51 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?

ЗЗЫ c DRWeb я кажется тоже погорячился... остальное под вопросом(
« Последнее редактирование: 05-09-2011 08:43 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #19 : 03-09-2011 18:54 » 

в VS редактор диалогов есть. а для формы - вроде только вместе с MFC.

нет, MFC редактору не нужен - редактируй на здоровье Улыбаюсь

хм, нет, фраза непонятная. А чем форма от диалога отличается ? )))
Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 03-09-2011 19:01 » 

наличием цикла обработки сообщений, если не ошибаюсь)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 03-09-2011 19:14 » 

хм хм. Ну, к примеру, вот цикл обработки, запустим его в отдельном потоке


Код:
int messageLoop(void*)
{
MSG msg;
while( ::GetMessage(&msg, 0, 0, 0) )
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return 0;
}

где тут форма ? Улыбаюсь
« Последнее редактирование: 03-09-2011 19:16 от Алексей1153++ » Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #22 : 03-09-2011 19:31 » 

тут и диалога нет) и что?)))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 03-09-2011 19:35 » 

вот и выходит, что диалог и форма - одно и тоже (суть описание ресурса в *.rc и resource.h)

а цикл с ними не связан вообще )

Добавлено через 37 секунд:
ну даже проще - у меня сейчас проект не использует MFC, но редактором я пользуюсь вовсю
« Последнее редактирование: 03-09-2011 19:36 от Алексей1153 » Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 03-09-2011 19:48 » 

под формой я подразумевал всякие VCLные формы) то бишь окна со своим классом окна.

хм... тогда поделись опытом. я чет просмотрел где это можно делать.

Цитата
жмоты!!!! в Express Visual Studio нет редактора ресурсов!
« Последнее редактирование: 03-09-2011 20:03 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 03-09-2011 20:20 » 

в экспресс может и нету )

а в остальном - так же, в дерево ресов добавляешь диалог и редактируешь
« Последнее редактирование: 03-09-2011 20:22 от Алексей1153++ » Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #26 : 03-09-2011 20:21 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?
Насчет других не знаю, но QiP пишется на Delphi http://ru.wikipedia.org/wiki/QIP_2005
И кстати цитата отуда
Цитата
27 июля 2009 года вышел билд 8094, который ставил стартовой страницей браузера сайт qip.ru и возвращал эту страницу, если пользователь её изменял. К тому же, билд оказался заражён вирусом Win32.Induc.a[5]. Вирус распространяется через установленный Delphi, изменяя модуль SysConst. После этого все собранные заражённым компилятором программы будут зараже
Ну чем не вирус Улыбаюсь Все признаки в наличие.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #27 : 03-09-2011 20:29 » 

Finch , точно... совсем забыл) ладно, квип вычеркиваем)

Алексей1153++, ты что то типа этого имел в виду?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 03-09-2011 20:55 » 

Ochkarik, нет, я говорю только про ресурс диалога
Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #29 : 03-09-2011 21:00 » 

тогда я не понял А черт его знает...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #30 : 04-09-2011 05:12 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?
А конкретнее, откуда инфа?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 04-09-2011 06:32 » 

тогда я не понял А черт его знает...
нууу, тогда я тоже Отлично
Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 04-09-2011 15:43 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?
А конкретнее, откуда инфа?
честно говоря от балды привел... исключительно чтоб ваши слова не столь одиозно звучали.

ну например  Notepad-wiki
Цитата
Notepad++ — свободный текстовый редактор для Windows с подсветкой синтаксиса большого количества языков программирования и разметки. Он базируется на компоненте Scintilla
Цитата
Scintilla — компонент редактирования с открытым исходным кодом для Microsoft Windows, и Linux с GTK+...
На Linux использует библиотеку GTK+, на Windows — Windows API.

uTorrent - разработка началась в 2005году, однако
"Versions of µTorrent up to 1.8.5 build 17091[21] can use as little as 14 MB of RAM running on a 486 processor on Windows 95."
однако для MacOS - только с 2010, для Linux с 2010го. соответственно - только подозрения что ничего кросплатформенного не использовалось... и работа началась с винды. и размер, сейчас не помню, но что то около двух сотен кб.
MFC библиотеки вроде не линкуются. да и разработчик тоже...хакер еще тот)

UltraISO  занимает порядка 1мбайта.
"Windows 7/2008/Vista/2003/XP (32bit and 64bit), Windows 2000, ME, 98SE, 98, or Windows NT4.0 SP6a+ operating system ."
Intel Pentium 166MHz or above.
интересно, кто граф-библиотек до сих пор поддерживает "Windows NT4.0 SP6a+"?)))
хотя тут тоже пальцем в небо. если честно)

про DrWeb, на недельке уточню, самому интересно)

в общем то не суть важно. поискать - найти можно.
просто не стоит так однозначно... я не говорю что микрософт оффис надо переписать на чистом API)  но для эстетики... почему  бы и нет?))
в конце концов, кто то тоже должен писать эти граф оболочки?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #33 : 04-09-2011 16:06 » 

Ochkarik, Если используется WinAPI, то не о какой кроссплатформенности речи не идет. .NET изначально позиционировали как кроссплатформенное решение. Полная поддержка есть только для Windows. Стараниями фирмы Novell есть попытка .NET перевести на *nix. Но фирму Novell уже продали. И насколько я слышал, купил ее фонд довольно близкий M$. Так что, дальнейшая судьба проекта mono не известна. Да и на моей памяти сушествует всего 3 проэкта написанных на mono.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
zubr
Гость
« Ответ #34 : 04-09-2011 16:17 » 

Ochkarik, ну есть еще мазохисты, которые гуи на ассемблере пишут, но это все скорее исключения, подтверждающие правило.
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 04-09-2011 17:15 » 

Finch, да я ни одного слова не сказал о NET) это просто были размышления что есть некоторые программы по недоразумению написанные без....

zubr,
ага. и QT для Windows, наверное тоже не использует API, либо ее те самые извращенцы пишут) оно наверное как-то так работает... само собой) интересно для чего библиотека QtGui.dll обращается к библиотеке GDI32.dll? случайно наверное)
это не спор.... я просто хочу сказать что хоть кто то, но должен помнить о том что есть такое слово API)

Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #36 : 04-09-2011 18:06 » 

Цитата
zubr,
ага. и QT для Windows, наверное тоже не использует API, либо ее те самые извращенцы пишут) оно наверное как-то так работает... само собой) интересно для чего библиотека QtGui.dll обращается к библиотеке GDI32.dll? случайно наверное)
это не спор.... я просто хочу сказать что хоть кто то, но должен помнить о том что есть такое слово API)
Наверняка использует, более того, для тебя наверно не секрет, что большинство более менее серьезных приложений использует API, но зачастую, если речь идет о нестандартном гуи или системных задачах. Не думаю что в том же QT все окна и диалоги сделаны на чистом API.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #37 : 04-09-2011 19:11 » 

QT, конечно, использует Win32 API в винде. Но QT является кроссплатформенной библиотекой и точно также использует другие API, характерные для используемой платформы. Главное, что это полноценный классовый фреймворк, дающий обширный сервис через свое API.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #38 : 04-09-2011 19:40 » 

да ладно.. я то чего полез) я и читать не умею)
« Последнее редактирование: 04-09-2011 20:05 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #39 : 05-09-2011 03:47 » 

Ochkarik, так в винде то конечно использует, как же не использовать, приложение ведь запущено в винде )). Ну так и IDE виндового варианта используется Улыбаюсь

 в Qt виндовое окно и диалог, но вот содержимое их - чисто отрисованное, спаем не палится ничего
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #40 : 05-09-2011 09:50 » 

Цитата: Алексей1153++
в Qt виндовое окно и диалог, но вот содержимое их - чисто отрисованное, спаем не палится ничего
И это правильно - нечего окна плодить без нужды. Окно я признаю только в том случае, если его надо двигать поверх других. Всё остальное достаточно просто рисовать как картинку. А в Windows любая кнопка - уже отдельное окно.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #41 : 05-09-2011 11:38 » 

Dimka, так в Qt и философия окон (виджетов) совсем другая Улыбаюсь

Насчёт кнопок: в винде кнопки/окна ввода/и прочие элементы управления, созданные из ресурса, - не есть постоянно отдельное окно , в отличие от созданных через Create собственноручно. Они там временные (как это разграничено - я не знаю, наверное имеется некий пул хендлов, если окно неактивно, хендлы его контролов могут быть захапаны другими окнами). Поэтому доступ к хендлу контрола осуществляется через GetDlgItem(hParent,ID) . Если же пытаться сохранить хендлы контролов в мап, к примеру , то всё это проработает некоторое время, а потом рухнет )))

в Qt же всегда - один хендл на один диалог. Ну ко всем остальным виджетам - доступ только по указателю
« Последнее редактирование: 05-09-2011 11:41 от Алексей1153++ » Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #42 : 05-09-2011 16:30 » 

Поэтому доступ к хендлу контрола осуществляется через GetDlgItem(hParent,ID) .
по моему это не совсем так. это верно только для диалогов - там обращение к контролам может происходить по его ID (а может и не происходить).
для контролов, рожденных на классе основного окна(на родительском окне) - хендл выдается при рождении и дальнейшее обращение к контролу происходит через него. при стандартном пути создания окна (как это было изначально предусмотрено) все контролы могут размещатся во время WM_CREATE (да и в любое другое время тоже кстати. хоть динамически), путем вызова:
   //поле вводда разрядности квантования
   hwndEdit_ =      CreateWindowEx();
дальнейшие манипуляции с контролом происходят через его хендл:
   SendMessage(hwndEdit_,WM_SETFONT,fnt_avf,0);

обработчик диалога просто хранит список сопоставлений ID и хендлов. собственно то, что это диалог - это просто дополнительный скрипт который выполняет действия размещения контролов, по таблице из ресурсов. плюс это некий дефолтный обработчик некоторых сообщений винды.

но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #43 : 05-09-2011 19:51 » 

>>по моему это не совсем так.
так я и говорю, что хендлы мечутся только у контролов, созданных из ресурса. Прочитай повнимательнее мой пост;)

ну а Qt не делает то же самое. Хотя, я их и не сравнивал - лучше или хуже. Просто иначе
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #44 : 05-09-2011 21:04 » 

Цитата: Ochkarik
но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Разница принципиальная. Концептуально окно - это прямоугольная область... (и т.д., и т.п.) И это худшая абстракция, чем абстракция "представление" (view). Потому что view не подразумевает ни способа вывода, ни формы, а окно уже подразумевает некоторые специфические свойства. А потом начинаются танцы с бубном (например, прозрачности для окон непрямоугольной формы и т.п.).

Т.е. окно как концепция - неудачная основа иерархии сущностей. Впрочем, поскольку в WinAPI ООП в зачаточном состоянии - тяжёлое наследние 1985 года, окно как основа понятно. Но морально устарело Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #45 : 05-09-2011 22:19 » 

>>по моему это не совсем так.
так я и говорю, что хендлы мечутся только у контролов, созданных из ресурса. Прочитай повнимательнее мой пост;)

ну а Qt не делает то же самое. Хотя, я их и не сравнивал - лучше или хуже. Просто иначе
я имел в виду что любой контрол в винде создается одинаково) в конечном счете через CreateWindowEx, просто в диалоге это делает встроенный скрипт. про "мечутся" я не понял наверное) про QT - это Дмитрию)

Цитата: Ochkarik
но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Разница принципиальная. Концептуально окно - это прямоугольная область... (и т.д., и т.п.) И это худшая абстракция, чем абстракция "представление" (view). Потому что view не подразумевает ни способа вывода, ни формы, а окно уже подразумевает некоторые специфические свойства. А потом начинаются танцы с бубном (например, прозрачности для окон непрямоугольной формы и т.п.).
вот я и пугаюсь, что однажды приду домой, и буду открывать полупрозрачную, непрямоугольную дверь, серповидным в крапинку ключом ))) я уж молчу про окна)

а насчет неудачной иерархии... вам удобно пользоваться овальными кнопками на сферических программах?)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #46 : 06-09-2011 03:09 » 

Цитата
а насчет неудачной иерархии... вам удобно пользоваться овальными кнопками на сферических программах?)
Это смотря для каких целей. К примеру для подобной программы:

вполне.

* f_4dfa585cbdd2b.jpg (16.3 Кб - загружено 1334 раз.)
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #47 : 06-09-2011 05:29 » 

эммм) красиво) еще какой нибудь стрелочный индикатор рядом напрашивается) даже странно что их перестали применять... вот была ВЕЩЬ!

я минут через пять понял, что это какой то таймер))) а чтобы настроить - надо водить мышкой вокруг центра?

вот жешь, а такое я в живую даже не представлял что делали...
« Последнее редактирование: 06-09-2011 05:33 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #48 : 06-09-2011 06:10 » 

Да, таймер, мышкой берешь за ползунок и крутишь. Я этот проект полгода назад делал.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #49 : 06-09-2011 06:19 » 

zubr, а кто рисовал?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
zubr
Гость
« Ответ #50 : 06-09-2011 06:32 » 

Заказчик предоставил скрины.
Записан
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines