Bitmap per Tastatureingabe



  • Hallo Leute,

    der folgenden Quellcode dient zum Ausgeben von zwei Bitmaps(wobei IDI_ICON2
    über IDI_ICON1 liegt) in einem Fenster:

    #include "stdafx.h"
    #include <stdio.h>
    #include <afxwin.h>

    class CMeinHauptfenster : public CFrameWnd {
    public:
    CMeinHauptfenster();
    protected:
    afx_msg void OnPaint();
    DECLARE_MESSAGE_MAP();

    };
    CMeinHauptfenster::CMeinHauptfenster() {
    Create(NULL, "",WS_SYSMENU, rectDefault);

    };
    void CMeinHauptfenster::OnPaint() {

    CBitmap *pMeinBild = new CBitmap;
    pMeinBild->LoadBitmap(IDI_ICON1);

    BITMAP bm;
    CPaintDC dc(this);
    CDC MeinDC;
    MeinDC.CreateCompatibleDC(NULL);
    MeinDC.SelectObject(pMeinBild);
    pMeinBild->GetObject(sizeof(bm), &bm);

    dc.BitBlt(10,10, bm.bmWidth, bm.bmHeight, &MeinDC,15,15,SRCCOPY);

    CBitmap *pMeinBild2 = new CBitmap;
    pMeinBild2->LoadBitmap(IDI_ICON2);

    BITMAP bm2;
    CPaintDC dc(this);
    CDC MeinDC2;
    MeinDC2.CreateCompatibleDC(NULL);
    MeinDC2.SelectObject(pMeinBild2);
    pMeinBild2->GetObject(sizeof(bm), &bm);

    dc.BitBlt(10,10, bm.bmWidth, bm.bmHeight, &MeinDC2,15,15,SRCCOPY);
    }
    BEGIN_MESSAGE_MAP(CMeinHauptfenster,CFrameWnd)
    ON_WM_PAINT()
    END_MESSAGE_MAP()

    class CMeineAnwendung : public CWinApp {
    public:
    virtual BOOL InitInstance();
    };

    BOOL CMeineAnwendung::InitInstance() {
    m_pMainWnd = new CMeinHauptfenster();
    m_pMainWnd -> ShowWindow(SW_SHOW);

    return TRUE;
    }
    CMeineAnwendung Programm;

    /////////////////////////////////////////////////////////////////////

    Nun möchte ich gerne die zweite Bitmap per Tastatureingabe(cin >>) erscheinen
    lassen, weiß aber nicht so recht wie.
    Könntet ihr mir vieleicht helfen.

    Schon mal vielen Dank!

    Gruß Crabbe



  • erm...du möchtest CIN in einer MFC anwendungen benutzen? Soweit ich weiß, geht dies nur in Konsolenanwendungen 🙂
    Schau dir dazu mal WM_KEYDOWN und WM_CHAR an

    Hope it helps,

    Kevin



  • Bsp.:
    Habe über den MFC-Klassen-Assistent eine Methode für die Nachricht PreTranslateMessage erstellt

    BOOL CTestfarbeDlg::PreTranslateMessage(MSG* pMsg) 
    {
    	switch(pMsg->message)
    	{
    		case WM_CHAR:	switch(pMsg->wParam)
    						{
    							case '1': MessageBox("Nr 1");break;
    							//case andere Buchstaben 
    							default:	break;
    						}
    						break;
    		//case andere WM-Messages
    		default:		break;
    	}
    
    	return CDialog::PreTranslateMessage(pMsg);
    }
    

    MFG, Sigi



  • Danke für die Antworten!

    Gru? Crabbe


Anmelden zum Antworten