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

Вниз

PropertySheet & Windows 95   Найти похожие ветки 

 
clickmaker ©   (2006-12-27 09:52) [0]

Может ли кто-нибудь подсказать, почему данный код криво работает под Win95 с самой первой версией comctl32 - диалог появляется, вкладки появляются, но их содержимое и заголовки - нет. Т.е. проблема видимо в загрузке ресурсов, но почему? Под 98, 2000, 2003 все работает без проблем.

void DefinePropertyPage(PROPSHEETPAGE_V1* psp, int id, DLGPROC DlgProc)
{
ZeroMemory(psp, PROPSHEETPAGE_V1_SIZE);
psp->dwSize = PROPSHEETPAGE_V1_SIZE;
psp->dwFlags = PSP_DEFAULT;
psp->hInstance = hInstance;
psp->pszTemplate = MAKEINTRESOURCE(id);
psp->pfnDlgProc = DlgProc;
psp->lParam = 0;
}
...
PROPSHEETPAGE_V1 psp[NUM_PAGES];
PROPSHEETHEADER psh;
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.nPages = 0;

DefinePropertyPage(&psp[0], IDD_PAGE1, GeneralDlgProc);
psh.nPages++;
// и так NUM_PAGES раз
...
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;
psh.dwSize = PROPSHEETHEADER_V1_SIZE;
psh.hwndParent = hwnd;
psh.pszCaption = GetResourceStr(IDS_CAPTION);
psh.nStartPage = 0;
psh.ppsp = (LPCPROPSHEETPAGE)psp;

PropertySheet(&psh);


Причем, если сказать
DialogBox(hInstance, IDD_PAGE1, то диалог появится. А вот в виде закладки упорно отказывается


 
tesseract ©   (2006-12-27 10:49) [1]

Попробуй DCOM обновить на машине, ИМХО из-за этого.


 
clickmaker ©   (2006-12-27 10:56) [2]


> [1] tesseract ©   (27.12.06 10:49)
> Попробуй DCOM

DCOM? а он-то тут причем?


 
Сергей М. ©   (2006-12-27 11:14) [3]

Возможно это прояснит ситуацию:
http://www.microsoft.com.nsatc.net/globaldev/handson/dev/mslu_announce.mspx


 
clickmaker ©   (2006-12-27 11:19) [4]

Да мужики, вы чего?
Причем тут DCOM и уникод? Обычная АПИшная прога...
В самой 95-то такие диалоги работают. Свойства там и все такое...


 
tesseract ©   (2006-12-27 13:51) [5]


> Причем тут DCOM и уникод?


COM он Юникодный.


 
clickmaker ©   (2006-12-27 13:54) [6]


> [5] tesseract ©   (27.12.06 13:51)

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


 
tesseract ©   (2006-12-27 16:53) [7]

Я имел ввиду, что DCOM включает и comctrl32.dll. Потом глянул на код :-)

Ты структуру используешь для contrl32.dll  4.0.  А возможно у тебя OSR2 где она 4.7+ или IE 3 стоит.


 
tesseract ©   (2006-12-27 16:54) [8]

попробуй такое в билд проекта "/D _WIN32_IE=0x0200 "


 
clickmaker ©   (2006-12-27 17:03) [9]


>  [8] tesseract ©   (27.12.06 16:54)

у меня #define _WIN32_IE 0x0200 в шапке модуля

и не работает это как раз при версии comctl32 на "голых" 95 с MS Plus (IE2). на OSR2 не тестил, но если стоит ИЕ3 и на 98 и выше - работает
Тут какая-то чешуя с ресурсами, но не пойму пока...
Потому что сам диалог с вкладками создается, но содержимого на них нет и на всех заголовках вкладок 2 одних и тех же невнятных символа, похоже в левой кодировке (сама винда - PE), хотя ресурс аглицкий
Кстати, если юзать PROPSHEETPAGE вместо PROPSHEETPAGE_V1, то диалог вообще не появляется на этой несчастной 95. Что в принципе логично


 
tesseract ©   (2006-12-27 17:08) [10]

гм проверь версию. Может она ниже 4 ? Тогда работать вроде и не должна. А так - включи обновление comctrl в дистр, или нельзя ни под каким соусом?


 
clickmaker ©   (2006-12-27 17:20) [11]


> обновление comctrl в дистр, или нельзя ни под каким соусом?

да надо обеспечить совместимость с самой первой 95. А специфика проги такова, что ее можно и без установки запускать, хоть с КД, хоть с дискеты.

Да и раз МС уверяет, что
Minimum DLL Version comctl32.dll
Header prsht.h
Import library comctl32.lib
Minimum operating systems Windows NT 3.51, Windows 95

то хочется разобраться


 
clickmaker ©   (2006-12-29 10:18) [12]

Уяснил для себя такую вещь. Софтописательство под казалось бы безнадежно устаревшие системы, такие как 95 - оно дисциплинирует. Заставляет более трепетно относиться к самому коду и ресурсам. Да и к самой ОС.
А вот когда пишешь под ХР да под 2003 - это развращает. На некоторые вещи просто перестаешь обращать внимание - да все одно, ось сама позаботится. Где нужно, добавит; где не нужно - подотрет.
------
Так бы ведь и не узнал, что в проперитшитах под 95 не поддерживаются шаблоны DIALOGEX в ресурсах, так заботливо сгенеренные дизайнером VS2003



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

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

Наверх





Память: 0.48 MB
Время: 0.049 c
4-1167142342
MasteroK
2006-12-26 17:12
2007.06.03
Как извлечь из буфера обмена первые N символов текста.


15-1178552374
vitv
2007-05-07 19:39
2007.06.03
Настройка доступа в Вин2003.


5-1155032569
Avgust
2006-08-08 14:22
2007.06.03
шифрование пароля


6-1164304410
flaxe
2006-11-23 20:53
2007.06.03
EmbeddedWB1 и idHTTP1


2-1179304284
[Salo]Phantom
2007-05-16 12:31
2007.06.03
Запуск внешнего приложения





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