|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 6, 2004 14:50:10 Вроде правильно заполнил PROPSHEETPAGE and PROPSHEETHEADER, но не работает почему-то. Флаги вроде тоже те, которые нужны. Да ещё этот компилятор,блин, говорит, что ошибок нет. Пробовал по-разному, но всё безуспешно. Поглядите исходник, плизззззз. Может это из-за того, что я окно создал, для первой и единственной странички, через CreateWind, а не в ресурсах. флаг - PSP_DLGINDIRECT, как я понял, нужен для того, чтобы указать, то, что окно создаётся не в ресурсах... _767084053__PropertySheets.rar |
|
|
Дата: Июн 7, 2004 02:02:29 [ NitroCephal: флаг - PSP_DLGINDIRECT, как я понял, нужен для того, чтобы указать, то, что окно создаётся не в ресурсах... ] Да, но тогда pResource должен указывать на ресурс диалога в памяти, а у тебя это не так. Я там упростил кое-что. Надеюсь, этого будет достаточно. PSH_MODELESS закомментарен, т.к. если PropertySheet из WM_CREATE звать, то косяки могут быть. 1026760822__PropertySheets.rar |
|
|
Дата: Июн 7, 2004 08:58:54 Пробовал с индексами структуры создавать, например, объявлять LOCAL psp[3]:PROPSHEETPAGE и заполнять структуры: mov psp[0]..., mov psp[1]..., mov psp[2]... и с помощью CreatePropertySheetPage создавать по-очереди все страницы и хэндлы ложить в переменную с соответствующим странице индексом. Потом в psh.phpage ложить хэндл с индексом нулевым, так как нужно указать первую страничку. Но ничё не работает. А вот если объявить psp PROPSHEETPAGE <>, psp1 PROPSHEETPAGE <>, psp2 PROPSHEETPAGE <>, и всё это заполнить и ещё указать флаг PSH_PROPSHEETPAGE, что нужно использовать переменную ppsp, и создать с помощью PropertySheet без вызовов CreatePropertySheetPage с соответствующими индексами, - то всё ОК. Вот в С++ так: PROPSHEETPAGE psheetPage[2]; psheetPage[0].dwSize = sizeof(PROPSHEETPAGE); psheetPage[0].hInstance = hInst; psheetPage[0].pszIcon = MAKEINTRESOURCE(IDI_EFFECTS); psheetPage[0].dwFlags = PSP_USETITLE | PSP_USEICONID; psheetPage[0].pszTemplate = MAKEINTRESOURCE(IDD_DIALOG1); psheetPage[0].pfnDlgProc = DlgProc1; psheetPage[0].pszTitle = "Set Effects"; psheetPage[0].lParam = 0; psheetPage[1].dwSize = sizeof(PROPSHEETPAGE); psheetPage[1].hInstance = hInst; psheetPage[1].pszIcon = MAKEINTRESOURCE(IDI_TAB); psheetPage[1].dwFlags = PSP_USETITLE | PSP_USEICONID; psheetPage[1].pszTemplate = MAKEINTRESOURCE(IDD_DIALOG2); psheetPage[1].pfnDlgProc = DlgProc2; psheetPage[1].pszTitle = "Using Tabs"; psheetPage[1].lParam = 0; и потом: HPROPSHEETPAGE hPage[3]; hPage[0] = CreatePropertySheetPage(&psheetPage[0]); hPage[1] = CreatePropertySheetPage(&psheetPage[1]); hPage[2] = CreatePropertySheetPage(&psheetPage[2]); А в ассме получается так нельзя чтоли, только, например, так .data? hPage DD ?,?,? .code hPage,eax...hPage+4,eax...,hPage+8,eax..., но тут же известен размер, а когда создаёшь странички ведь там-то размер,наверно, не слово и не двойное слово, хотя если высчитать sizeof'фом чтоли...короче надо разбираться с этими индексами...ххх Ладно, хоть чего-то добился с PropertySheet'ом, наконец-то научился хоть так создавать. TabControl куда проще создать, хотя это не то что мне нужно. И ещё вопрос: PageControl - это не то же самое, что и PropertySheet? 1040457141__PropertySheets.rar |
|
|
Дата: Июн 7, 2004 12:39:03 [ NitroCephal: А в ассме получается так нельзя чтоли... ] Нет, нельзя. В асме всё приходится делать руками. На то он и асм. LOCAL psp[3]:PROPSHEETPAGE
LOCAL psh:PROPSHEETHEADER
. . .
mov psp[sizeof PROPSHEETPAGE * 0].dwSize,sizeof PROPSHEETPAGE
m2m psp[sizeof PROPSHEETPAGE * 0].hInstance,hInstance
m2m psp[sizeof PROPSHEETPAGE * 0].hIcon,hIcon
mov psp[sizeof PROPSHEETPAGE * 0].dwFlags, PSP_USEHICON or PSP_USETITLE
mov psp[sizeof PROPSHEETPAGE * 0].pfnDlgProc,offset DlgProc
mov psp[sizeof PROPSHEETPAGE * 0].pszTitle,offset App1
mov psp[sizeof PROPSHEETPAGE * 0].lParam,0
mov psp[sizeof PROPSHEETPAGE * 0].pszTemplate, IDD_PROP1
mov psp[sizeof PROPSHEETPAGE * 1].dwSize,sizeof PROPSHEETPAGE
m2m psp[sizeof PROPSHEETPAGE * 1].hInstance,hInstance
m2m psp[sizeof PROPSHEETPAGE * 1].hIcon,hIcon+4
mov psp[sizeof PROPSHEETPAGE * 1].dwFlags, PSP_USEHICON or PSP_USETITLE
mov psp[sizeof PROPSHEETPAGE * 1].pfnDlgProc,offset DlgProc1
mov psp[sizeof PROPSHEETPAGE * 1].pszTitle,offset App2
mov psp[sizeof PROPSHEETPAGE * 1].lParam,0
mov psp[sizeof PROPSHEETPAGE * 1].pszTemplate, IDD_PROP2
... и т.д. |
|
|
Дата: Июн 7, 2004 13:57:53 Ok, усвоил...=) Спасибо! |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.050 |