Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Вниз

Как под WinXP поставить на форму стандартные контролы?   Найти похожие ветки 

 
REaliSt   (2002-06-23 05:09) [0]

Привет. Вот вопросик тут есть.
Как мне поместить на форму (можно в RunTime) кнопки и прогрессбар в стиле
Windows XP. Знаю, что в VCL такого нет. А есть ли в WinApi ф-ция для создания контролла на окне?
Заранее спасибо.


 
Gandalf   (2002-06-23 11:53) [1]

Давай по порядку.
1. Что-бы страндартные контролы VCL выглядели ново - надо просто добавить XP-манифест (такой ресурс файл - если нужно пиши).
2. Причем это только в run-time для design-time надо саму прогу манифестить (т.е. Delphi) это тоже возможно при помощи PExplorer (вроде так - могу дать линк).
3. Для создания контрола есть функции (CreateWindowEx), но для XP вид без манифеста это утопия (толь если ты сам его не рисуешь - но это тяжко, если грамотно)

Удачи


 
Юрий Зотов   (2002-06-23 11:56) [2]

> Как мне поместить на форму (можно в RunTime) кнопки и
> прогрессбар в стиле Windows XP.

Очень просто - поставить Windows XP. Сразу все в ее стиле и станет.


> Знаю, что в VCL такого нет.

А в VCL вообще нет ни одного оконного контрола, она их все из системных библиотек берет. Поэтому какая система - такие и контролы.


> А есть ли в WinApi ф-ция для создания контролла на окне?

Есть, даже две. CreateWindow и CreateWindowEx называются. Не поверите, но VCL именно их и использует.


 
rhf   (2002-06-23 13:18) [3]

2 Юрий Зотов

например диалоги открытия, сохранения и.т. при компиляции в d3 получаються совссем не такими как в системе ...

а если сделать их самому на апи, то все нормально.....


 
Юрий Зотов   (2002-06-23 14:29) [4]

Естественно. Старушка D3 просто ничего не знает о новых наворотах, поэтому их и не использует. И плоские скроллбары, наверное, ей тоже недоступны - а в D5 включена их поддержка. И т. д. - таких примеров можно привести целую кучу. А если посмотреть CommCtrl, то даже и в D5 там нет новых стилей и прочих констант, которые появились, например, в СommCtrl32.dll v5.81 и позже. Ну и что? Ничего. Я тут тулбар писал, взял эти константы из документации, объявил их у себя - и все OK. Это естественно. Но суть-то не меняется - все равно все эти контролы берутся из системных библиотек, и если они старые, то хоть лопни, но новых стилей не добьешься. Скажем, под NT ну никак стиль XP не получишь, что ни делай. Только библиотеки обновлять - если MS дает такой SP.


 
Proton   (2002-06-23 15:08) [5]

Откомпиль вот этот фыайл

---- cut - xp_style.rc -----


/****************************************************************************


xp_style.rc

produced by Borland Resource Workshop


*****************************************************************************/

LANGUAGE LANG_RUSSIAN,1


1 24 LOADONCALL MOVEABLE
{
"3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31"
"2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54"
"46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D"
"22 79 65 73 22 3F 3E 0D 0A 3C 61 73 73 65 6D 62"
"6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A 73 63"
"68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66 74 2D"
"63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61 6E 69"
"66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31 2E 30"
"22 3E 0D 0A 3C 61 73 73 65 6D 62 6C 79 49 64 65"
"6E 74 69 74 79 0D 0A 20 20 20 20 6E 61 6D 65 3D"
"22 53 4B 2E 53 74 61 66 66 2E 43 6C 69 65 6E 74"
"22 0D 0A 20 20 20 20 70 72 6F 63 65 73 73 6F 72"
"41 72 63 68 69 74 65 63 74 75 72 65 3D 22 78 38"
"36 22 0D 0A 20 20 20 20 76 65 72 73 69 6F 6E 3D"
"22 35 2E 31 2E 30 2E 30 22 0D 0A 20 20 20 20 74"
"79 70 65 3D 22 77 69 6E 33 32 22 2F 3E 0D 0A 3C"
"64 65 73 63 72 69 70 74 69 6F 6E 3E 53 74 61 66"
"66 3C 2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0D"
"0A 3C 64 65 70 65 6E 64 65 6E 63 79 3E 0D 0A 20"
"20 20 20 3C 64 65 70 65 6E 64 65 6E 74 41 73 73"
"65 6D 62 6C 79 3E 0D 0A 20 20 20 20 20 20 20 20"
"3C 61 73 73 65 6D 62 6C 79 49 64 65 6E 74 69 74"
"79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 74"
"79 70 65 3D 22 77 69 6E 33 32 22 0D 0A 20 20 20"
"20 20 20 20 20 20 20 20 20 6E 61 6D 65 3D 22 4D"
"69 63 72 6F 73 6F 66 74 2E 57 69 6E 64 6F 77 73"
"2E 43 6F 6D 6D 6F 6E 2D 43 6F 6E 74 72 6F 6C 73"
"22 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 76"
"65 72 73 69 6F 6E 3D 22 36 2E 30 2E 30 2E 30 22"
"0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 70 72"
"6F 63 65 73 73 6F 72 41 72 63 68 69 74 65 63 74"
"75 72 65 3D 22 78 38 36 22 0D 0A 20 20 20 20 20"
"20 20 20 20 20 20 20 70 75 62 6C 69 63 4B 65 79"
"54 6F 6B 65 6E 3D 22 36 35 39 35 62 36 34 31 34"
"34 63 63 66 31 64 66 22 0D 0A 20 20 20 20 20 20"
"20 20 20 20 20 20 6C 61 6E 67 75 61 67 65 3D 22"
"2A 22 0D 0A 20 20 20 20 20 20 20 20 2F 3E 0D 0A"
"20 20 20 20 3C 2F 64 65 70 65 6E 64 65 6E 74 41"
"73 73 65 6D 62 6C 79 3E 0D 0A 3C 2F 64 65 70 65"
"6E 64 65 6E 63 79 3E 0D 0A 3C 2F 61 73 73 65 6D"
"62 6C 79 3E 0D 0A"
}


-- и в проге допиши ----
{$R XP_STYLE.RES}


 
REaliSt   (2002-06-24 05:23) [6]

2 Юрий Зотов
Дело в том, что у меня итак стоят WinXP Home и Professional
Так вот, что я в Delphi не делал, не могу такой стиль получить.
Помещаем на форму кнопку TButton. Это получится кнопка как в 98.
А хотелось бы кнопку как в стандартных XP-диалогах.

2 rhf
Да, думаю только на АПИ

2 Proton
Спасибо, попробую.


 
REaliSt   (2002-06-24 05:43) [7]

2 Proton
thank you
Все работает ОК!!!!!
Благодарю


 
v0id   (2002-06-24 08:28) [8]

Или вот так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Program"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>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>


Только надо будет это сохранить как res файл (в VC++).


 
Proton   (2002-06-24 10:27) [9]

А с ListView пробывал - у меня ошибка в ядре выскакивает если мышкой наводиш. (да у меня там чек боксы включены)
Я как понял что не судьба делфям 5м с новыми стилями работать.
Плюнул и все убрал.

> REaliSt © (24.06.02 05:43)
> 2 Proton
> thank you
> Все работает ОК!!!!!
> Благодарю

Очень рад что помог.

> v0id © (24.06.02 08:28)
> Или вот так:

Вообщем это то же самое .
Главно правильно это в рес запихнуть.
А по скольку он такое уже пробывал и у него не вышло кинул этот RC


 
Gandalf   (2002-06-24 12:05) [10]

Еще компонент есть XPDesign (просто подключает res файл).

Да у меня с ListView таже трабла - причем при использовании ReportView. Кто нибудь знает как вылечить?


 
REaliSt   (2002-06-24 17:31) [11]

>Да у меня с ListView таже трабла - причем при использовании >ReportView. Кто нибудь знает как вылечить?

Думаю дело именно в Delphi 5. У меня в 6-х все вроде б работает.



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

Форум: "WinAPI";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
6-95926
Olegas
2002-06-16 16:36
2002.08.29
как из своей программы открыть Outlook NEW MAIL?


4-96021
Ally
2002-06-26 13:59
2002.08.29
WideChar в RichEdit


3-95718
ZDN
2002-08-09 12:48
2002.08.29
Перевод БД из под Progress на Interbase


4-96014
NecroMan
2002-06-21 05:13
2002.08.29
Как закрыть корректно чужую программу?


1-95888
VID
2002-08-17 16:12
2002.08.29
Вставка рисунка в RichEdit





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