Win32 Console, kurze Hilfe bitte, sehr einfach



  • Hallo zusammen,

    Hab hier folgenden code:

    main.cpp

    #include <afxwin.h>
    #include "menuIDs.h"
    
    class CMenuWindow : public CFrameWnd {
    public:
    	CMenuWindow();
    	~CMenuWindow();
    	afx_msg void OnPaint();
    	afx_msg void OnExit();
    	afx_msg void OnAbout();
    	afx_msg void OnColor(UINT);
    private:
    	int color;
    	DECLARE_MESSAGE_MAP()
    };
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    CMenuWindow::CMenuWindow() {
    	Create(NULL, "Menu Options", WS_OVERLAPPEDWINDOW, CRect(100,100,500,500), NULL, "Example" );
    	color = 0;
    }
    
    CMenuWindow::~CMenuWindow() { }
    
    afx_msg void CMenuWindow::OnExit() {
    	MessageBox("Good-bye", "Big Al");
    	SendMessage( WM_CLOSE );
    }
    
    afx_msg void CMenuWindow::OnAbout() {
    	MessageBox("Roll Tide!", "Alabama");
    }
    
    afx_msg void CMenuWindow::OnColor(UINT e) {
    	switch (e) {
    		case IDM_GREEN: color = 1; break;
    		case IDM_BLUE: color = 2; break;
    		case IDM_RED: color = 3; break;
    		case IDM_BLACK: color = 4; break;
    		case IDM_WHITE: color = 5; break;
    	    case IDM_PURPLE: color = 6; break;
    	}
    	InvalidateRect(NULL, false);
    }
    
    afx_msg void CMenuWindow::OnPaint() {
    	CPaintDC dc(this);
    	CBrush brush;
    	switch (color) {
    		case 1: brush.CreateSolidBrush( RGB(0, 255, 0) ); break;
    		case 2: brush.CreateSolidBrush( RGB(0, 0, 255) ); break;
    		case 3: brush.CreateSolidBrush( RGB(255, 0, 0) ); break;
    		case 4: brush.CreateSolidBrush( RGB(0, 0, 0) ); break;
    		case 5: brush.CreateSolidBrush( RGB(255,255,255) ); break;
    		case 6: brush.CreateSolidBrush( RGB(87,5,25) ); break;
    	}
    	dc.SelectObject( &brush );
    	CRect rect;
    	GetClientRect ( &rect );
    	dc.Rectangle( rect );
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    BEGIN_MESSAGE_MAP (CMenuWindow, CFrameWnd)
    	ON_COMMAND(IDM_ABOUT, OnAbout)
    	ON_COMMAND(IDM_EXIT, OnExit)
    	ON_COMMAND_RANGE(IDM_GREEN, IDM_WHITE, OnColor)
    	ON_WM_PAINT()
    END_MESSAGE_MAP()
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    class CMenuApp : public CWinApp {
    public:
    	BOOL InitInstance() {
    		m_pMainWnd = new CMenuWindow();
    		m_pMainWnd->ShowWindow(m_nCmdShow);
    		m_pMainWnd->UpdateWindow();
    		return TRUE;
    	}
    } menuApp;
    

    menuIDs.h:

    #define IDM_ABOUT	2000
    #define IDM_EXIT	2001
    #define IDM_GREEN	2101
    #define IDM_BLUE	2102
    #define IDM_RED		2103
    #define IDM_BLACK	2104
    #define IDM_WHITE	2105
    #define IDM_PURPLE	2106
    

    menu.rc:

    #include <afxres.h>
    #include "menuIDs.h"
    
    Example MENU
    {
    	POPUP "File"
    	{
    		MENUITEM "About", IDM_ABOUT
    		MENUITEM "Exit", IDM_EXIT
    	}
    	POPUP "Colors"
    	{
    		MENUITEM "Green", IDM_GREEN
    		MENUITEM "Blue", IDM_BLUE
    		MENUITEM "Red", IDM_RED
    		MENUITEM "Black", IDM_BLACK
    		MENUITEM "White", IDM_WHITE
    	}
    }
    

    Weiss einer wie ich das jetzt nen bisschen aubaue? Also ich will nen paar neue Menu Eintraege, oder Schaltflaechen die dann irgendwas machen, muss nichts grosses sein. Koennte ich vielleicht nen Mneuepunt integrieren der nen Bild oder ne Internetseite laed, oder irgendwas anderes?
    Also ihr koennt eurer Phantasie da freien lauf lassen, blos nichts all zu kompliziertes.
    Ach ja ich hab ja schon versucht purple einzufuegen, wieso kann ich da nich draufklicken?

    Daniel



  • Endurance schrieb:

    Also ich will nen paar neue Menu Eintraege, oder Schaltflaechen die dann irgendwas machen, muss nichts grosses sein. Koennte ich vielleicht nen Mneuepunt integrieren der nen Bild oder ne Internetseite laed, oder irgendwas anderes?

    Und das verstehst du unter "kurze Hilfe, sehr einfach"? 😕

    Es wird sicher hier keiner Lust haben, dein Programm einfach mal so auszuschmücken, vor allem weil du ja nicht einmal genau weißt was du willst. Also überleg dir erst einmal was du machen willst, dann setz dich hin und probier es, und wenn du dann Fragen hast, dann poste hier (wenn du in diversen Hilfen/Tutorials/Google nichts finden kannst) 🙂

    Gruß Brainiac

    PS: Außerdem bist du im falschen Forum, das ist MFC (und nicht Win32 Console wie du im Titel schreibst)



  • Ach ja ich hab ja schon versucht purple einzufuegen, wieso kann ich da nich draufklicken?

    Das waere zB eine spezielle Frage die ich hab. Purple erscheint im Menu, aber es ist nicht fett, also nichts verlinkt, wieso nich?

    Daniel



  • Purple hat sich schon erledigt, hab ich gerade rausgefunden.

    Nehmen wir mal an ich erstelle einen neuen Menupunkt, "Picture", wie kann ich ein bild zu dem Menupunkt verlinken? Oder, nach welchen Stichwoertern muesste ich da bei google suchen?



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten