Mal wieder eine wrapper-klasse



  • Hallo Gruppe!

    Ich versuche mal wieder Win-Api-Calls in C++-Klassen zu kapseln, allerdings 'benimmt' sich mein Test-Programm nicht so, wie es soll. Genauer:

    void WndBase::createWnd(HWND hWndParent, TCHAR *clsName, int style, int x, int y, int w, int h,
    						TCHAR *wndName, int exStyle, HMENU hMenu)
    {
    #ifdef _DEBUG
    	if ( !g_hInst )
    		throw ErrWin(1, TEXT("WndBase::createWnd (%s) -> no g_hInst defined!"), clsName);
    
    	//DEBUG
    ///////////////////
    ///////////////////
    // Diese Msg-Box zeigt keinen Text an ... ?!
    ///////////////////
    ///////////////////
    	DB_MSG("WndBase::createWindowEx(exStyle(%x), clsName('%s'), wndName('%s'), style(%x),"
    		"x(%d), y(%d), w(%d), h(%d), hWndParent(%x), hMenu(%x), hInst(%x)",
    		exStyle, clsName, wndName, style, x, y, w, h, hWndParent, hMenu, g_hInst);
    #endif
    
    /*
    	m_hWnd = ::CreateWindowEx(exStyle, clsName, wndName, style, x, y, w, h,
    		hWndParent, hMenu, g_hInst, this);
    */
    
    	/////////////////////
    	/////////////////////
    	// ...und hier fehlt der Fenster-Titel
    	/////////////////////
    	/////////////////////
    
    	m_hWnd = ::CreateWindowEx(exStyle, clsName, TEXT("test"), style, x, y, w, h,
    		hWndParent, hMenu, g_hInst, this);
    
    	if ( !m_hWnd )
    		throw ErrWin(2, TEXT("WndBase::createWnd (%s) -> CreateWindowEx failed."), clsName);
    
    }
    

    Leider tappe ich hier völlig im dunkeln, und der Fehler ist wohlmöglich an einer ganz anderen Stelle, daher habe ich den kompletten Source (VC++ - Projekt) mal online gestellt:

    http://home.arcor.de/fonebone/wrap/

    Gruß,
    FB

    p.s. Sorry, ich kann leider das Problem nicht besser beschreiben, bzw enger eingrenzen...

    p.p.s was mache ich bei der Code-Formatierung falsch?!



  • noch eine Frage: Beim 'im-dunkeln-Herumstochern' ist mir aufgefallen, dass sich die im Debuger bzw, in Spy++ angezeigten Adressen für die wndProc unterscheiden (also nicht gleich sind). Den gleichen Effekt habe ich aber auch bei einer vom 'VC++-Assistenten' erstellten 'Standard-Win32-Anwendung'. Trotzdem frage ich mich, ob das seine Ordung hat und warum das so ist?!

    Gruß,
    FB


Anmelden zum Antworten