Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.03;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2007.06.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.053 c
2-1178898796
M1sT
2007-05-11 19:53
2007.06.03
Ошибка при выполении SQL запроса....


2-1179143595
IGray
2007-05-14 15:53
2007.06.03
Как сформировать файл письма в формате ЕML программно?


4-1167202366
clickmaker
2006-12-27 09:52
2007.06.03
PropertySheet & Windows 95


1-1175837354
tytus
2007-04-06 09:29
2007.06.03
Как показать хинт?


9-1151830455
Ricks
2006-07-02 12:54
2007.06.03
Воллейбол