Window Handle erzeugen, unsichtbares Fenster



  • Ich bräuchte relativ einfach ein unsichtbares Fenster, das einen richtigen HWND besitzt. Ich schreibe ein Prog das die serielle Schnittstelle einliest, und die Message die ich von dieser erhalte muss ich an eine HWND binden, der dann das auslesen übernimmt. Ich will aber eigentlich gar keine Fenster dafür (Trennung View <-> Controller). Hat da jemand eine Idee, wenn gar nichts geht, will ich wenigstens ein unsichtbares Fenster... Wie schaffe ich das (zur Laufzeit)?

    Danke für alle Anregungen

    IngBob



  • Welcher Controller schickt denn die Nachrichten an ein HWND?



  • Eben, das meine ich ja... Ist doof

    Ich habe die Library SerialMFC und SerialWnd verwendet, die das bearbeiten der seriellen Schnittstelle wrapped. Diese Posted aber ihre Nachrichten (eEvent) an ein Fenster, dafür braucht das doofe ding ein HWND



  • Dann mach dir einfach eines... 😉

    class CBlaBlaWnd : public CWnd
    {
    public:
        CBlaBlaWnd()
        {
            if(!CreateEx(0, AfxRegisterWndClass(0), _T(""), 0, CRect(0,0,0,0), NULL, 0))
                AfxThrowResourceException();
        }
        ~CBlaBlaWnd()
        {
            DestroyWindow();
        }
        DECLARE_MESSAGE_MAP()
        //...
    };
    BEGIN_MESSAGE_MAP(CBlaBlaWnd, CWnd)
        ON_MESSAGE(...)
    END_MESSAGE_MAP()
    
    void machwas()
    {
        CBlaBlaWnd wnd;
        ASSERT(wnd.m_hWnd != NULL);
    }
    

    Den Teil für die MESSAGE_MAP musst du allerdings noch von Hand hinzufügen, aber wie das geht, kannst du ja an jedem Dialog abschauen 😉

    [ Dieser Beitrag wurde am 09.07.2003 um 14:19 Uhr von tag editiert. ]

    [ Dieser Beitrag wurde am 09.07.2003 um 14:24 Uhr von tag editiert. ]


Anmelden zum Antworten