?? Весь "код" - это несколько банальнейших строк, там просто нечему мешать контролам отображаться. От нашего стола вашему столу:
kero Похоже, что comctl32.dll в импорт не попала. Из-за этого на некоторых машинах не отображается содержимое диалогов, мессаджбоксов и т.п. [+] исправил
rmn Видимо, надо читать - comctl32 ? Всегда оставлял ее в исходниках закомментированной, в надежде когда-нибудь лично нарваться на ситуацию ее необходимости при наличии манифеста. Неужели это наконец-то случилось ? В аттаче comctl32 раскомментирована, а WM_THEMECHANGED теперь незаконно посылается не только контролам, но и самому диалогу.
Так и есть Теперь все работает Тему в принципе можно считать закрытой Если не считать того что это сообщение нужно послать всем контролам, которых фактически на данном этапе нет
Это на каком же таком данном этапе ?? И почему нужно именно на таком хреновом этапе ?? --- И хотелось бы все же конкретики. Вот rmn говорит: Так не проверите ли на вашем компе приаттаченный non-dialog вариант с закомментированной comctl32 ?
kero Я о том говорю что образ загружаемого файла погружен в АП загрузчика, все настроено и остается только прыжок на EntryPoint загружаемого файла (на данном этапе никаких окон нет) потому я и говорил что стиль нужно установить для приложения в целом а не для конкретны окон. Думаю тут все понятно - окон нет на данном этапе
Между прочим, до сих пор я ведь здесь отвечал только вот на это: Но если начать с начала, - а вы уверены, что в результате имеете дело с comctl32 именно 6 версии ? Ведь фраза - - сообщает, похоже, именно об отсутствии манифеста в нужное время на нужном месте. А тогда говорить об uxtheme вообще нет смысла. --- Так как насчет non-dialog варианта?
встретилась вот функция которая должна добавлять манифест в EXE во время выполнения но увы это не работает подскажите это вообще реально? Код (Text): BOOL AddManifest(__in LPWSTR szFilespec, __in LPWSTR szProgName, __in LPWSTR szProgDesc) //Adds a manifest { static LPWSTR szFormat = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" L"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">" L"<assemblyIdentity " L"version=\"1.0.0.0\" " L"processorArchitecture=\"x86\" " L"name=\"%s\" " L"type=\"win32\" />" L"<description>%s</description>" L"<dependency>" L"<dependentAssembly>" L"<assemblyIdentity type=\"win32\" " L"name=\"Microsoft.Windows.Common-Controls\" " L"version=\"6.0.0.0\" " L"publicKeyToken=\"6595b64144ccf1df\" " L"processorArchitecture=\"x86\"/>" L"</dependentAssembly>" L"</dependency>" L"</assembly>"; HMODULE hMod=LoadLibrary(szFilespec); if (!hMod) return FALSE; HRSRC hRes=FindResource(hMod,MAKEINTRESOURCE(1),MAKEINTRESOURCE(24)); FreeLibrary(hMod); if (!hRes) { HANDLE hUpdate=BeginUpdateResource(szFilespec,FALSE); if (!hUpdate) return FALSE; LPWSTR szManifest=new WCHAR[lstrlenW(szFormat)+ (szProgName ? lstrlenW(szProgName) : 0)+ (szProgDesc ? lstrlenW(szProgDesc) : 0)+1]; wsprintf(szManifest,szFormat, szProgName ? szProgName : L"",szProgDesc ? szProgDesc : L""); BOOL bUpdateSuccessful=UpdateResource(hUpdate, MAKEINTRESOURCE(24), MAKEINTRESOURCE(1), MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_UK), (LPVOID)szManifest,(DWORD)lstrlenW(szManifest)); if (!bUpdateSuccessful) { delete[] szManifest; EndUpdateResource(hUpdate,TRUE); return FALSE; } delete[] szManifest; if (!EndUpdateResource(hUpdate,FALSE)) return FALSE; } return TRUE; }