[ Mikky @ 22.02.2004. 00:34 ] @
Prost program koji sam kreirao kao win32 application, i u settingsima setovao da koristi MFC kao DLL. Napravio sam prozor, i kako sad da CMenu objekat dodelim tom prozoru, tj da mi se prikaze meni ispod tog prozora?


Code:

#include    <afxwin.h>

// napravi klasu programam

class    CMyApp    :    public    CWinApp
{

    public:
        virtual BOOL InitInstance();

};

// klasa prozora
class    CMyWin    :    public    CFrameWnd
{
    public:
        CMyWin()
        {
            Create(0,"MFC sux big time!!");

        }
};

// klasa menija
class    CMyMenu    :    public    CMenu
{

};


// inicijalizacija programa,
// napravi prozor
// napravi meni
// attachuj meni na prozor
//
BOOL CMyApp::InitInstance()
{
        // napravi prozor
        m_pMainWnd = new CMyWin;                    // napravi prozor na heapu, 
        m_pMainWnd->ShowWindow(m_nCmdShow);            // prikazi ga

        // napravi meni
        CMenu CMyMenu;
        
        // pridruzi prozoru ovaj meni.... kako?

        return    TRUE;
        
}



// PRAVI objekat moje applikacije i tu sve pocinje.... unutra se zove interno winmain, pa wndproc, pa InitInstance......
CMyApp    bla;


probao sam u InitInstance() da uradim:
m_pMainWnd->InsertMenu()

ali vc6 javlj da InsertMenu() nije funkcija clanica CFrameWnd klase, sto je kontradiktorno MSDN dokumentaciji koja kaze bas obrnuto?
:Confused
[ alex @ 22.02.2004. 12:20 ] @
Cekaj, za u Properties tog tvog dialoga ne mozes da podesis koji meni da se koristi za taj dialog?

U resursima kreiras meni IDR_MENU (recimo) i onda otvoris Properties prozorce tvog dialoga i u Menu stavku ubacis taj meni.

Ako hoces programski to da uradis onda je resenje sledece:

Code:

CMenu menu;
menu.LoadMenu(IDR_MENI);
SetMenu(&menu);


Konsultuj MSDN, tamo je sve verovatno lepse objasnjeno nego sto sam ja objasnio
[ Mikky @ 22.02.2004. 12:52 ] @
Ok ja sam hteo da pravim meni iz koda, znaci bez resursa. Odnosno ceo ovaj programcic je rucno radjen bez ClassWizarda, cisto da bi video kako to radi.

Inace kako kompajler razlikuje da li sam pozvao win32 API ili MFC proceduru ako one imaju isto ime?
[ filmil @ 22.02.2004. 13:10 ] @
Citat:
Inace kako kompajler razlikuje da li sam pozvao win32 API ili MFC
proceduru ako one imaju isto ime?


Name resolution je definisan standardom jezika C++.

f

[ svrle @ 22.02.2004. 20:01 ] @
Mikky napisa:

>ali vc6 javlj da InsertMenu() nije funkcija clanica CFrameWnd klase, sto je kontradiktorno MSDN dokumentaciji koja kaze bas obrnuto?

Koliko sam ja video u MSDN-u (iz 2000. godine), InsertMenu() postoji
samo u Windows CE verziji MFC-a.

--
Pozdrav,
Svrle.
[ yooyo @ 22.02.2004. 22:12 ] @
Probaj m_pMainWnd->SetMenu(CMyMenu);

yooyo