Значить, кнопки у меня в редакторе ресурсов объемные. Но как мне просто вызвав MessageBox получить кнопку ОК в стиле ХР. Я конешно подозреваю, что надо вмешивать какойто стиль, но у мну СДК для Вин2000. Как? И если можете - ссылку на сдк для ХР. (ну если такая есть - и для висты). язык можно английский.
Берешь WINDOWS\system32\usmt\migwiz.exe.manifest, копируешь в путь_к_твоей_программе\имя_твоей_программы.exe.manifest. Запускаешь программу, любуешься. Второй вариант - подобный манифест ввести в ресурс такой строкой: Код (Text): // RC-file 1 24 "manifest_file.xml" ,где manifest_file.xml - имя манифеста. Еще исправь в тексте манифеста имя той программы на имя своей, но это не обязательно. PS: в некоторых случаях, типа проги на VB, такой трюк может провалиться.
Код (Text): <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity processorArchitecture="*" version="версия проги" type="win32" name="имя проги" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> </assembly> это текст манифеста. подставь версию и имя своей проги и добавляй в ресурсы вышеуказанным способом. нужно предварительно подгрузить comctl32.dll. например так, поместив приведённый код в отдельный модуль: Код (Text): Public Sub Main() On Error Resume Next Dim iccex As InitComCtl With iccex .lngSize = LenB(iccex) .lngICC = &H200 End With InitCommonControlsEx iccex On Error GoTo 0 frmMain.show End Sub ЗЫ: сорри за VB
это версия comctl библиотеки, с версией висты связан весьма отдалённо publickey - именно тот, что прописан. я же написал, что нужно изменить: имя ТВОЕЙ проги и её версию
Все, пасиба. Я уже сам разобрался. Чето у меня не получается подключить его fasm'om Если можете - код с секцией ресурсов.
Я кошешно прошу прощения за настырность, но с манифестами чето никак недоговорюсь... Значить отдельным файлом поключить получилось, работает. Включением в исполяемый файл тоже включил нормально, но он оттуда неработает. Все ошибки, все проверил. Все включено правильно.
нужно вставить импорт из comctl32.dll например - InitCommonControlsEx. любым способом - лишь бы comctl была загружена в твой процесс
Подключил, и даже если первой вызываю эту функцию, всеравно плоские... Я уже даже не знаю что делать.
>Включением в исполяемый файл тоже включил нормально, но он оттуда неработает. Выложите здесь. OS - какая ?
хп сп 2 - все новое (если можна так сказать) 5.82 - версия comctl32.dll Испытания проводились на встроеном примере ФАСМа. Все в рахиве. http://webfile.ru/1664598 - 2 кБ
ресурс манифеста должен иметь тип "24" и имя "1". язык - не важен. смотри исправленный exe в аттаче. в фасме не разбираюсь, как это сделать. в *.rc файле это делается так: Код (Text): ... 1 24 "manifest.xml" ...
ПАБЕДА!!! Чуваки, всем спасиба. Все разобрался, все работает. Вот так получяется. Код (Text): section '.rsrc' resource data readable directory RT_MANIFEST,manifestdir ;RT_MANIFEST=24 !!! resource manifestdir,1,LANG_NEUTRAL,manifest resdata manifest file 'manifest.xml' endres Большое всем спасибо!