![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
кто сидит под XP/2000 знает, что там "круглые" кнопки.
блин, CreateWindow("BUTTON"...) их не делает. |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Это можно сделать при помщи самого Windows, без С++:
Создаешь файл с именем типа appname.exe.manifest. В него прописываешь:
Запускаешь прогу и под XP стиль XP а под 9x все как обычно. Можно еще сам проект с этим кодом компилить, но об этом на С++ ничего сказать не могу, тока на Делфе. ЗЫ Отот manifest придеться все время с exe таскать. -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Необходимо для окна (кнопки) указать регион - тогда все заработает даже на 95
|
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
хехе, сложно
не, секрет где то есть наверняка. в стилях. какойнить WS_GLOBAL. |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
А че сложного? Файл создать и переименовать?
-------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
Borland_Delphi_6
дык может проще гдето всетаки добавить лишние пару символов в проге? |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Не заню, это не ко мне, но думая что парой символов не обойдется.
Если тебя смущает то, что нужно файл с собой таскать, то это вовсе не обязательно. -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
DENNN
Step эт че за обкорныш будет? |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Какой регион наложишь такой и будет, хоть с дыркой от бублика.
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Почему? Рисуешь кнопку как обычно. |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
блин, да вы че? я понимаю, регионы там, это все круто.
дык ведь кнопка то СТАНДАРТНАЯ в XP!!! округлая! че мне парится с регионами и ownerdraw если она стандартом сама рисуется!!! |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
А ты че кроме хрюши на других виндах свою прогу крутить не будешь?
|
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
1. в дереве ресурсов жмешь Add Resource
2. жмешь Custom, если у тя VS.NET пишеш RT_MANIFEST, если нет, то 24 3. Открываеш ресурс для редактирования и вставляещ в него: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="CompanyName.ProductName.YourApplication" type="win32" /> <description>Your application description here.</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> 4. потом открываешь appname.rc, находиш там этот ресурс, обычно это строчка: IDR_RT_MANIFEST1 RT_MANIFEST "rt_manif.bin" меняеш IDR_RT_MANIFEST1 просто на 1, получаешь: 1 RT_MANIFEST "rt_manif.bin" 5. При старте проги вызываеш InitCommonControls() , даже если не используешь List Control, Tree Control, ... т.к. при использовании стилей за прорисовку обычных кнопок, чекбутонов, радиобутонов, ... отвечает comctl32.dll возможно, что ресурс можно добавить и другим, более элегантным, способом, но у мя получилось только так -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
и еще, при включении стилей для приложения грузится не comctl32.dll из папки System32, а вот откуда:
C:\WINDOWS\WINSXS\X86_MICROSOFT.WINDOWS.COMMON-CONTROLS_6595B64144CCF1DF_6.0.10.0_X-WW_F7FB5805\COMCTL32.DLL так что если для приложения заранее не включены стили, то потом в автомате они рисоваться не будут, т.е. потребуется либо ручная прорисовка с помощью функций DrawThemeBackground, DrawThemeText либо еще какие-нить ухищерения. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
DENNN ага а потом задеш регион и она не красиво обрезается, или при большом регионе, вообще проблески на экране
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Так прежде чем что-то сделать надо репу почесать, чтоб отладчик поменьше гонять
Хочешь нарисовать округлую кнопку - непроблема. Переопределяешь скажем CButton класс. При создании вычисляешь регион в зависимости от размеров кнопки. Можно переопределить WM_ERASEBCKGRND (или как-то так пишется) тогда можно всякие блики и тени без труда изобразить. Чуть-чуть напрячся и у тебя интерфейс будет круче XP, а запускться прога юудет даже на 95. StepМежду нами, стили XP все это игрушки которые с толку с бивают, потому как неизвестно какие у конечного юзера сверху еще темы будт применены и все эти манифесты будут смотрется не так как нужно (если вообще друг на друна не залезут с такими выпендрежами) |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
а вообще если хочеш красоту, то делаеш ее на флеше и вставляеш в проект, я так делал, очень красиво получается....
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
а если мне, блин, нравится тот интерфейс, который я сам любовно в виндах настроил, а может и сам рисовал? мне вот блин интерфейс твоей проги, как юзеру нафиг не нужен, мне нужен тот, который мне нравится -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
cully
вот это вроде уже ближе к телу ))) а то все как не сишники.... ;) DENNN слава богу совместимость еще обеспечивает MS туды сюды, более менее. да и проверочку запросто можно вставить накрайняк. |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
DENNN
из-за одной прорисовки? хехе, вот бы тебя в мягкотелые работать, ты бы им там все переопределил бы ;) что винда вообще бы кроме как на 60 GHz проце с 1 Tb памяти могла бы только окошко вывести об отказе работать на такой левой тачке. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ты бы как сишник подумал прежде чем такое писать, а из этих рассуждений получиться что тебе первому надо от всяких там мфц отказываться |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
DENNN
вообще то я на чистом API пишу, писал, да и буду писАть ;) |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
файлик *.exe.manifest уже наверное написал?
Виндоус все ругают, но все под него пишут (только не надо что это все юзеры виноваты а мы сами беленькие). Линух все кричат: "Круто!" а использовать как надо могут только единицы.
тогда использование региона для тебя должно быть хорошо известно. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ты вот графический редактор какой-нибудь на чистом API напиши. Слабо? Наверное сразу кучу классов графических напишешь "на чистом API".
|
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
DENNN
да вообще то уже написал, и не один, и не графический. и использование регионов мне ОЧЕНЬ знакомо. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
В соседнем топике "Как заставить работать ActiveX с помощью API?" человек пытается на чистом API ACtiveX в свою прогу вставить. Помог бы раз такой спец. А мы все поучимся
Это сообщение отредактировал(а) DENNN - 1.4.2003, 17:48 |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
cully
а InitCommonControlsEx() покатит? просто уже эта вызывается |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Vaulter прокатит
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| aMiGo! |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2003 Где: Тула Репутация: нет Всего: нет |
На этот вопрос есть два ответа:
1) Рисовать все самому, используя нововведенные функции 2) Кое-что добавить в ресурсы! На первом варианте, имхо, останавливаться не стоит - гимор не для начинающих, а вот на втором - думаю стОит! "Что же надо добавить в ресурсы?", - спросите вы! "А не скажу...", - отвечу я Для простоты юзания легче всего создать какой-нить файл, к примеру data.bin! Создав его в него следует закатать следующий текст: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="5.1.0.0" processorArchitecture="x86" name="Author.Program_Name" type="win32" /> <description>Program_description</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> Написали? Да у вас успехи в программировании Теперь лезем в ресурсы (в текстовой вид, т.е. в файл с расширением *.rc) и куда-нить пишем такую строку: 1 24 MOVEABLE PURE "data.bin" А теперь компилим и наслаждаемся Q: Упс... прога выдает "ошибку" и не запускается... Что делать? A: В моем случае надо было добавить в опции линковщика ( Project -> Settings -> Link -> Object/Library Modules ) вот эту либу: comctl32.lib. Если и это не помогло, то в сомое начало проги вызываем функцию InitCommonControls (без параметров) которая прописана commctrl.h --------------------
With the best regards, Anton |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
И работать будет только под XP
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |