[ Nedeljko @ 20.07.2010. 13:00 ] @
Odlučio sam da koristim CFreeMenu klasu Ne kapiram koja je suštinska razlika između ova dva projekta, tj. zašto jedan puca u dibag režimu, a drugi ne. |
[ Nedeljko @ 20.07.2010. 13:00 ] @
[ itf @ 20.07.2010. 13:11 ] @
Šteta što ne koristiš C++ Builder. Izbor menija je jako velik. Npr.:
![]() ![]() ![]() [ Nedeljko @ 20.07.2010. 13:17 ] @
Moram da koristim VC++ MFC. Lepote BCB-a su mi inače poznate, ali o izboru alata ne odlučujema ja.
[ deerbeer @ 20.07.2010. 13:18 ] @
Ako ti puca u debug-u onda je vrlo verovatno da je neki ASSERT ..
Valjda dobijes neki info kad pukne (debug window) itd .. Ako vec hoces gotovo resenje , mozes pogledati novi BCG pack kontrola u VS2010 . [ Nedeljko @ 20.07.2010. 13:34 ] @
Puca pri poyivu funkcije GetMenuItemCount, u metodi DrawMenu klase CFreeMenu.
[ deerbeer @ 20.07.2010. 13:51 ] @
Onda moras imati neki meni koji se otvara na ovaj popup .
[ Nedeljko @ 20.07.2010. 14:08 ] @
Pa, zar ne bi funkcija jednostavno trebala da vrati nulu?
Kako to onda radi u onom drugom projektu? [ deerbeer @ 20.07.2010. 14:18 ] @
Citat: Pa, zar ne bi funkcija jednostavno trebala da vrati nulu? Assert nije isto sto i runtime-error . Assert te samo upozorava u debug modu na neku mogucu gresku . Klikom na continue se nastavlja izvrsnenje programa . U releasu rezimu toga nema Citat: Kako to onda radi u onom drugom projektu? U drugom projektu koliko mi se cini imas submenije .. [ Nedeljko @ 20.07.2010. 14:25 ] @
Stavio sam meni iz onog projekta koji radi i isto je.
[ Nedeljko @ 20.07.2010. 14:48 ] @
Otkrio sam da je problem u tome što iz nekog razloga taj objekat nije meni, bar ne kreiran.
Takođe, imam masu curenja. [ Nedeljko @ 20.07.2010. 15:42 ] @
U konstruktoru klase CFreeMenu nalazi se kod
Code: CMenu *menu = m_Menu->GetSubMenu(i); if(menu) { CRect rect = GetItemRect(m_Menu,i); CPoint p; if(flags == 1) { p.x = rect.left; p.y = rect.bottom+1; } else { p.x = rect.right + 1; p.y = rect.top; } p.Offset(beginP); CFreeMenu *submenu = new CFreeMenu(menu,p,ParentWnd,BackGroundColor,EdgeLUColor,EdgeRDColor,TextColor,font,0,this); SubMenu.Add(submenu); } else SubMenu.Add(NULL); Sa druge strane, u dokumentaciji metode Code: CMenu* CMenu::GetSubMenu(int nPos) stoji Citat: The CMenu pointer returned should not be stored. Izgleda da je tu problem - ne treba pamtiti pokazivač na podmeni, nego njegov hendler. [ Nedeljko @ 20.07.2010. 16:38 ] @
To je bilo u pitanju - kada se klasa CFreeMenu izmeni tako da nema polje
CMenu *m_Menu; Nego, polje HMENU hMenu a da se onda pokazivač na meni određuje na osnovu hendlera, onda radi. [ deerbeer @ 20.07.2010. 17:41 ] @
@itf
Jel se u BCB-u bira templejt menija ili moze da se kastomizuju boje , bitmape, fontovi .. ? [ itf @ 20.07.2010. 19:59 ] @
Citat: deerbeer: @itf Jel se u BCB-u bira templejt menija ili moze da se kastomizuju boje , bitmape, fontovi .. ? ![]() A postoje i komponente za izradu dosta kompleksnih vrsta menija. Npr.: ![]() Ima i podrška za web menije u desktop aplikacijama: ![]() Izbor je zaista jako velik. Nije ih problem "nabaviti", a nisu ni skupe. [ Nedeljko @ 20.07.2010. 21:28 ] @
Još samo da ima dokumentaciju ravnu MSDN-u, valjda bio BSB bilo najzastupljenije C++ okruženje za Windows.
No, ja ipak navijam za Qt SDK. [ itf @ 20.07.2010. 21:33 ] @
Ima cijeli set pdf dokumentacije i primjera za komponente ;)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|