Liebes Forum!
Ihr kennt sicher alle das klassische Grundgerüst eines einfachen GUI Programms. (WNDCLASSEX, RegisterClassEx, CreateWindowEx, WindowProcedure, etc).
Ich möchte mir jetzt eine Art eigene kleine Console bauen, bestehend aus einem Fenster sowie zwei Edit Controls. Damit ich das ganze dan öfters verwenden kann möchte ich gleich eine Klasse cConsole daraus bauen.
Folgendes Problem:
Ich möchte der Variable lpfnWndProc vom Typ WNDPROC der WNDCLASSEX Struktur nun die entsprechende WindowProcedure zuweisen. Leider mag das der Kompiler nicht:
error: cannot convert LRESULT (cConsole::*)(HWND__*, UINT, WPARAM, LPARAM)' to
LRESULT (*)(HWND__*, UINT, WPARAM, LPARAM)’ in assignment
Im console.h ist die Klasse declariert:
#include
class cConsole
{
public:
int Create(HINSTANCE hThisInstance, int nCmdShow); //ctor
private:
HWND hwndInput;
HWND hwndOutput;
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
};
In der console.cpp folgt die Implementierung:
#include "Console.h"
#define CLASSNAME "ConsoleClass"
LRESULT CALLBACK cConsole::WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /\* handle the messages \*/
{
case WM\_CREATE:
...
break;
case WM\_SIZE:
...
break;
case WM\_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
int cConsole::Create(HINSTANCE hThisInstance, int nCmdShow)
{
HWND hwnd; /\* This is the handle for our window \*/
MSG messages; /\* Here messages to the application are saved \*/
WNDCLASSEX wincl; /\* Data structure for the windowclass \*/
/\* The Window structure \*/
wincl.hInstance = hThisInstance;
wincl.lpszClassName = CLASSNAME;
wincl.lpfnWndProc = &cConsole::WindowProcedure; /\* This function is called by windows PROBLEM\*/
wincl.style = CS\_DBLCLKS; /\* Catch double-clicks \*/
wincl.cbSize = sizeof (WNDCLASSEX);
...
}
Außerhalb einer Klasse funktioniert das ganze perfekt. Ist ja auch autogeneriert beim Anlegen eines Win32 GUI Projekts in der IDE (Code::Blocks, MinGW).
Kann mir jemand helfen?
mfg dixxi