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ß,
FBp.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