[ Nedeljko @ 14.07.2010. 10:02 ] @
Imam MDI aplikaciju kojoj treba da skinujem meni. Podvlačim da moram da koristim klasu izvedenu iz CMenu. E, sad, klasa CMultiDocTremplate ima atribut m_hMenuShared, pomoću kojeg podešavam meni. Međutim, taj meni će biti aktivan samo ako je najmanje jedan dokument otvoren. Kako da "ubedim" aplikaciju da isti meni koristi i u slučaju da nema nijednog otvorenopg dokumenta?
[ deerbeer @ 14.07.2010. 19:34 ] @
Jesi li probao CMDIFrameWnd::MDISetMenu ?
http://msdn.microsoft.com/en-us/library/9ssa2857.aspx
ili
http://support.microsoft.com/kb/145857




[Ovu poruku je menjao deerbeer dana 14.07.2010. u 20:53 GMT+1]
[ Nedeljko @ 15.07.2010. 10:26 ] @
Probo, al ne pomože. Evo projekta u prilogu. Kada se napravi novi dokument, pa zatvori... šmrc!
[ deerbeer @ 15.07.2010. 11:31 ] @
Samo izmeni u prvoj liniji :

Code:

void CMenuBarAppView::OnActivateView(BOOL bActivate, CView *pActivateView, CView *pDeactiveView)
{
   // umesto  ((CFrameWnd*)AfxGetMainWnd())->OnUpdateFrameMenu(NULL);
   ((CFrameWnd*)AfxGetMainWnd())->OnUpdateFrameMenu(hMainMenu);
    AfxGetMainWnd()->DrawMenuBar();
    CView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}


I radice ti ...
[ Nedeljko @ 15.07.2010. 11:57 ] @
Ej, car si. Šaljem ispravan probni projekat u prilogu. Još samo kad bih znao odakle si sve to pokupio, pa da te manje smaram.

Nego, ne reče mi ništa za pivo! Moram malo da te častim.
[ deerbeer @ 15.07.2010. 12:32 ] @
Citat:

Još samo kad bih znao odakle si sve to pokupio, pa da te manje smaram.
Nego, ne reče mi ništa za pivo! Moram malo da te častim.

Kako to mislis "pokupio" ?

Inace ne smaras me , kad nema posla mnogo nije problem nikakav ,
nego je fora sto posle sljake me ceka "fizika" - ( na poslu farbam menije a posle farbam stolariju )
pa ce pivce malo da saceka, to u nacelu nikad ne odbijam






[ Nedeljko @ 15.07.2010. 14:37 ] @
Citat:
deerbeer: pa ce pivce malo da saceka, to u nacelu nikad ne odbijam ;)


Super. Nego, kako povećati visinu onog menubar-a? Ako stavim neki poveći font, odseče mi slova.
[ deerbeer @ 15.07.2010. 15:16 ] @
Jesi probao da promenis MenuInfo.cyMax ?

[ Nedeljko @ 15.07.2010. 15:58 ] @
Jesam. Stavim stotku i fleg MIM_MAXHEIGHT, al džaba.
[ deerbeer @ 15.07.2010. 21:44 ] @
Nece ni moci . Menubar je neke fiksne visine i ne moze se povecati ,
i ako sam meni dobro izracuna dimenzije teksta .

Moj ti je savet da napravis custom MenuBar koji ce da nasledi CControlBar .
Posto child prozori ne mogu sadrzati meni , napravices glavne meni dugmice da budu buttoni na ciji klik ili mouse over ce se otvarati popup meniji (skinovani) .
tik ispod tih dugmica (koje opet mozes da nasminkas malo) a koji ce simulirati kao da je "pravi meni" ,
Na ovaj nacin cini mi se i rade VisualStudio meniji,
a pritom ces taj menubar moci da dokujes za bilo koju ivicu prozora s tim sto ces morati
da korigujes kordinate popup menija u zavisnosti od ivice prozora .

Dosta vise posla , ali onda neces imati nikakva ogranicenja sto se tice dimenzija
kao ni pojavljivanja menija iz prethodnih postova .
[ Nedeljko @ 15.07.2010. 21:51 ] @
Hvala. A kako iz MDI aplikacije da "iscedim" standardan MenuBar i stavim svoj?
[ deerbeer @ 15.07.2010. 22:28 ] @
http://support.microsoft.com/default.aspx?scid=kb;en-us;131368
[ deerbeer @ 16.07.2010. 16:00 ] @
Otprilke ovo je ono sto tebi treba...
[ Nedeljko @ 17.07.2010. 23:09 ] @
Super, a jesi li primetio da kad jednom šklocneš na New, dobiješ dva prozora?
[ deerbeer @ 20.07.2010. 14:08 ] @
Ispravljeno .. probaj sada
[ Nedeljko @ 20.07.2010. 14:14 ] @
Hvala, ispravio sam to juče.

Jedini nedostatak ove tvoje SkinMenu biblioteke je što ne farba ceo popap, već ostaje po ivici nešto malo neofarbano.
[ deerbeer @ 20.07.2010. 17:44 ] @
Da , to je mana ali izgleda ne postoji nacin da se ofarbaju te ivice.
Onaj drugi primer koji si nasao umesto klasicnog win menija koristi obican prozor pa po njemu iscrtava stavke ,
kao i ivice .
[ Nedeljko @ 20.07.2010. 21:30 ] @
Da, naravno.
[ deerbeer @ 21.07.2010. 09:05 ] @
Ali i FreeMenu ima jednu manu .
Popup meniji ostaju vidljivi ako se klikne negde van njih .
Treba ponovo kliknuti na glavnu stavku menija da bi ih zatvorio sto nije standardno ponasanje .

Probaj u KillFocus hendleru da sakrijes otvoreni meni tj. prozor.

[ Nedeljko @ 22.07.2010. 09:42 ] @
Izvini, ali ova tvoja biblioteka izgleda ne proizvedi WM_COMMAND poruke.
[ Nedeljko @ 22.07.2010. 13:16 ] @
Rešio sam problem.
[ deerbeer @ 22.07.2010. 13:20 ] @
Citat:
Nedeljko: Izvini, ali ova tvoja biblioteka izgleda ne proizvedi WM_COMMAND poruke.

Sta tacno mislis pod tim ?
Kazes da si resio problem , pa rek'o da uradim bug-fix i kod mene .
[ Nedeljko @ 22.07.2010. 22:02 ] @
CMenuButton treba da prosleđuje poruku menija nagore.