[Warning] passing NULL used for non-pointer converting 1 of `HWND__* CreateWindowExA...



  • Ich glaub', ich mach dazu mal direkt einen neuen topic auf.

    Ich habe folgenden code, wo ein edit control
    ins hauptfenster gesetzt wird.
    wird das fenster gestreckt/gezerrt, soll das edit control von der breite und
    Größe her mitwachsen

    Hier mein source

    main.cpp

    #include <windows.h>
    
    LPCSTR MainClassName = "Texteditor";
    
    // Zum Empfangen und Auswerten der messages
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
    	// Generelle Fensterstruktur registrieren
    	WNDCLASSEX wc;
    	wc.cbSize = sizeof(WNDCLASSEX);
    	wc.style = 0;
    	wc.lpfnWndProc = WndProc;
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hInstance = hInstance;
    	wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(0));
    	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    	wc.lpszMenuName = MAKEINTRESOURCE(1);
    	wc.lpszClassName = MainClassName;
    	wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(0), IMAGE_ICON, 16, 16, 0);
    
    	if(!RegisterClassEx(&wc))
    	{
    		MessageBox(NULL, "Konnte das Hauptfenster nicht registrieren!", "Fehler!", MB_ICONEXCLAMATION | MB_OK);
    		return 0;
    	}
    
    	// Fenster erstellen
    	HWND hWnd = CreateWindowEx(
    		WS_EX_CLIENTEDGE,
    		MainClassName,
    		"Texteditor",
    		WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
    		CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
    		NULL,
    		NULL,
    		hInstance,
    		NULL
    	);
    
    	// Textbox ins Fenster setzen
    	HWND hEdit = CreateWindowEx(
    		NULL,
    		"EDIT",
    		"Gib was ein",
    		WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
    		3, 3, 400, 300,
    		hWnd,
    		NULL,
    		NULL,
    		NULL
    	);
    
    	// Fenster anzeigen
    	ShowWindow(hWnd, iCmdShow);
    
    	// Auf Messages reagieren
    	MSG wmsg;
    	while( GetMessage(&wmsg, NULL, 0, 0) )
    	{
    		TranslateMessage(&wmsg);
    		DispatchMessage(&wmsg);
    	}
    
    	return wmsg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
    	char string[255];
    
    	switch (iMsg)
    	{
    		case WM_SIZE:
    			HWND hEdit = GetTopWindow(hWnd, GW_CHILD | GW_HWNDLAST);
    			MoveWindow(hEdit, 3, 3, wParam, lParam, true);
    		break;
    		case WM_CLOSE:
    			DestroyWindow(hWnd);
    		break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    		case WM_COMMAND:
    			switch(LOWORD(wParam))
    			{
    				case 11:
    					LoadString(GetModuleHandle(NULL), 21, string, sizeof(string));
    					MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION);
    				break;
    				case 12:
    					LoadString(GetModuleHandle(NULL), 22, string, sizeof(string));
    					MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION);
    				break;
    				case 13:
    					DestroyWindow(hWnd);
    				break;
    			}
    		break;
    	}
    
    	// An Windows weitergeben und dessen Antwort als Rückgabewert zurück
    	return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
    

    Projekt1_private.rc

    //Ressourcen-Skriptedatei *.rc
    
    #include <windows.h>
    
    /////////////////////////////////////////////////////////////////
    //
    //Icon
    //
    0	ICON	"goofy.ico"
    
    /////////////////////////////////////////////////////////////////
    //
    // Menü
    //
    
    1 MENU
    BEGIN
    	POPUP "Datei"
    	BEGIN
    		MENUITEM "Öffnen",		11
    		MENUITEM "Speichern",	12
    		MENUITEM "Beenden",		13
    	END
    END
    
    /////////////////////////////////////////////////////////////////
    //
    //Stringtabelle
    //
    STRINGTABLE
    BEGIN
    	21,	"Funktioniert noch nicht!"
    	22,	"Funktioniert noch nicht!"
    END
    

    Hier der compile error

    [Warning] passing NULL used for non-pointer converting 1 of `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__*, HMENU__*, HINSTANCE__*, void*)'
    

    Mit

    HWND hEdit = GetTopWindow(hWnd, GW_CHILD | GW_HWNDLAST);
    

    versuche ich ein handle zum edit control abzurufen.
    Aber es kommt durch diese Anweisung zu einem compile error
    in Zeile 55, wobei sie damit ja eigentlich nichts zutun hat.

    Kommentiere ich das ganze aus

    case WM_SIZE:
    			//HWND hEdit = GetTopWindow(hWnd, GW_CHILD | GW_HWNDLAST);
    			//MoveWindow(hEdit, 3, 3, wParam, lParam, true);
    		break;
    

    Lässt es sich compilieren. Nur brauche ich doch aber die Skallierung...
    Was mache ich falsch?

    // edit
    Jetzt habe ich versucht, das handle zum edit control global zu definieren

    #include <windows.h>
    
    LPCSTR MainClassName = "Texteditor";
    
    HWND hEdit;
    
    // Zum Empfangen und Auswerten der messages
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
    	// Generelle Fensterstruktur registrieren
    	WNDCLASSEX wc;
    	wc.cbSize = sizeof(WNDCLASSEX);
    	wc.style = 0;
    	wc.lpfnWndProc = WndProc;
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hInstance = hInstance;
    	wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(0));
    	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    	wc.lpszMenuName = MAKEINTRESOURCE(1);
    	wc.lpszClassName = MainClassName;
    	wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(0), IMAGE_ICON, 16, 16, 0);
    
    	if(!RegisterClassEx(&wc))
    	{
    		MessageBox(NULL, "Konnte das Hauptfenster nicht registrieren!", "Fehler!", MB_ICONEXCLAMATION | MB_OK);
    		return 0;
    	}
    
    	// Fenster erstellen
    	HWND hWnd = CreateWindowEx(
    		WS_EX_CLIENTEDGE,
    		MainClassName,
    		"Texteditor",
    		WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
    		CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
    		NULL,
    		NULL,
    		hInstance,
    		NULL
    	);
    
    	// Textbox ins Fenster setzen
    	hEdit = CreateWindowEx(
    		NULL,
    		"EDIT",
    		"Gib was ein",
    		WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
    		0, 0, 400, 300,
    		hWnd,
    		NULL,
    		NULL,
    		NULL
    	);
    
    	// Fenster anzeigen
    	ShowWindow(hWnd, iCmdShow);
    
    	// Auf Messages reagieren
    	MSG wmsg;
    	while( GetMessage(&wmsg, NULL, 0, 0) )
    	{
    		TranslateMessage(&wmsg);
    		DispatchMessage(&wmsg);
    	}
    
    	return wmsg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
    	char string[255];
    
    	switch (iMsg)
    	{
    		case WM_SIZE:
    			MoveWindow(hEdit, 0, 0, wParam, lParam, true);
    		break;
    		case WM_CLOSE:
    			DestroyWindow(hWnd);
    		break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    		case WM_COMMAND:
    			switch(LOWORD(wParam))
    			{
    				case 11:
    					LoadString(GetModuleHandle(NULL), 21, string, sizeof(string));
    					MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION);
    				break;
    				case 12:
    					LoadString(GetModuleHandle(NULL), 22, string, sizeof(string));
    					MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION);
    				break;
    				case 13:
    					DestroyWindow(hWnd);
    				break;
    			}
    		break;
    	}
    
    	// An Windows weitergeben und dessen Antwort als Rückgabewert zurück
    	return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
    

    Es compiliert, stockt aber wie sau.
    Das edit control ist auch nicht zu sehen.

    Jetzt habe ich schon recharchiert und recharchier, probier und probiert.
    Es muss doch wohl möglich sein, ein mehrzeiliges Eingabefeld als child
    des Hauptfensters zu skalieren!? Und woran liegt dieser VERF!xX73
    compile error!!!!!!!!????ßßß 😡 😡 😡

    // edit 2
    Habe jetzt auch versucht, das edit control als Hauptfenster zu nehmen
    und das vorherige Hauptfenster zu entfernen.

    #include <windows.h>
    
    LPCSTR MainClassName = "Texteditor";
    
    // Zum Empfangen und Auswerten der messages
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
    	// Generelle Fensterstruktur registrieren
    	WNDCLASSEX wc;
    	wc.cbSize = sizeof(WNDCLASSEX);
    	wc.style = 0;
    	wc.lpfnWndProc = WndProc;
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hInstance = hInstance;
    	wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(0));
    	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    	wc.lpszMenuName = MAKEINTRESOURCE(1);
    	wc.lpszClassName = MainClassName;
    	wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(0), IMAGE_ICON, 16, 16, 0);
    
    	if(!RegisterClassEx(&wc))
    	{
    		MessageBox(NULL, "Konnte das Hauptfenster nicht registrieren!", "Fehler!", MB_ICONEXCLAMATION | MB_OK);
    		return 0;
    	}
    
    	// Edit-Fenster erstellen
    	HWND hWnd = CreateWindowEx(
    		WS_EX_CLIENTEDGE | WS_EX_APPWINDOW,
    		"EDIT",
    		"Texteditor",
    		WS_OVERLAPPEDWINDOW | ES_MULTILINE | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
    		CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
    		NULL,
    		NULL,
    		hInstance,
    		NULL
    	);
    
    	// Fenster anzeigen
    	ShowWindow(hWnd, iCmdShow);
    
    	// Auf Messages reagieren
    	MSG wmsg;
    	while( GetMessage(&wmsg, NULL, 0, 0) )
    	{
    		TranslateMessage(&wmsg);
    		DispatchMessage(&wmsg);
    	}
    
    	return wmsg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
    	char string[255];
    
    	switch (iMsg)
    	{
    		case WM_CLOSE:
    			// Problemchen
    			MessageBox(hWnd, "Kommt nie!", "Problem!", MB_OK);
    
    			DestroyWindow(hWnd);
    		break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    		case WM_COMMAND:
    			switch(LOWORD(wParam))
    			{
    				case 11:
    					LoadString(GetModuleHandle(NULL), 21, string, sizeof(string));
    					MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION);
    				break;
    				case 12:
    					LoadString(GetModuleHandle(NULL), 22, string, sizeof(string));
    					MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION);
    				break;
    				case 13:
    					DestroyWindow(hWnd);
    				break;
    			}
    		break;
    	}
    
    	// An Windows weitergeben und dessen Antwort als Rückgabewert zurück
    	return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
    

    Mehrzeiliges Eingabefeld mit Skrollbalken al Hauptfenster mit
    clientedge flag und der titleleiste halt.

    Problem: Icons werden aus der resource scheinbar nicht beachtet
    und die WM_CLOSE message tritt nicht ein...
    Hilfe, ich verzweifle langsam!



  • Ich hab zwar jetzt nicht alles durchgelesen, aber wenn du eine Nachricht behandelst solltest du DefWindowProc() eigentlich nicht mehr aufrufen.

    Bei deiner zweiten Variante wundert mich nicht das WM_CLOSE nicht kommt - Das Edit-Control hat seine eigene WindowProc und wird deine daher nicht benutzen.



  • Wird

    DestroyWindow(hWnd);
    

    in WinDef() etwa schon ausgeführt oder was meinst du?
    Die MessageBox ist ja nur zum Verdeutlichen, dass sie nicht aufgerufen wird.

    Ich habe der Fensterklasse doch auch hier wieder WndProc
    als Callback-Funktion zugewiesen. Ich habe im 2ten
    source doch nur die edit box als Hauptfenstr genommen,

    geeky schrieb:

    Das Edit-Control hat seine eigene WindowProc und wird deine daher nicht benutzen.

    Also kann ich das Edit control nicht als Hauptfenster nehmen,
    sondenr es muss ein Dialog sein. Ich bekomm die Skallierung
    ja nichtmal compiliert!

    // edit
    Das vorher compilierte Prog lief noch im Hintergrund... (acces denied)

    jetzt compiliert dev c++ das hier schonmal

    #include <windows.h>
    
    LPCSTR MainClassName = "Texteditor";
    
    // Zum Empfangen und Auswerten der messages
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
        // Generelle Fensterstruktur registrieren
        WNDCLASSEX wc;
        wc.cbSize = sizeof(WNDCLASSEX);
        wc.style = 0;
        wc.lpfnWndProc = WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(0));
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        wc.lpszMenuName = MAKEINTRESOURCE(1);
        wc.lpszClassName = MainClassName;
        wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(0), IMAGE_ICON, 16, 16, 0);
    
        if(!RegisterClassEx(&wc))
        {
            MessageBox(NULL, "Konnte das Hauptfenster nicht registrieren!", "Fehler!", MB_ICONEXCLAMATION | MB_OK);
            return 0;
        }
    
        // Fenster erstellen
        HWND hWnd = CreateWindowEx(
            WS_EX_OVERLAPPEDWINDOW,
            MainClassName,
            "Titletext",
            WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
            CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
            NULL,
            NULL,
            hInstance,
            NULL
        );
    
        // Textbox ins Fenster setzen
        HWND hEdit = CreateWindowEx(
            NULL,
            "EDIT",
            "Gib was ein",
            WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
            0, 0, 400, 300,
            hWnd,
            NULL,
            NULL,
            NULL
        );
    
        // Fenster anzeigen
        ShowWindow(hWnd, iCmdShow);
    
        // Auf Messages reagieren
        MSG wmsg;
        while( GetMessage(&wmsg, NULL, 0, 0) )
        {
            TranslateMessage(&wmsg);
            DispatchMessage(&wmsg);
        }
    
        return wmsg.wParam;
    }
    
    HWND hEdit;
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
        char string[255];
    
        switch (iMsg)
        {
    		case WM_SIZE:
    			MessageBox(NULL, "noch siehst du das edit control", "noch zu sehen", MB_OK);
    			hEdit = GetTopWindow(hWnd);
    			MoveWindow(hEdit, 0, 0, wParam, lParam, true);
    			MessageBox(NULL, "und weg ist es", "jetzt nicht mehr", MB_OK);
            break;
            case WM_CLOSE:
                DestroyWindow(hWnd);
            break;
            case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
            case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                    case 11:
                        LoadString(GetModuleHandle(NULL), 21, string, sizeof(string));
                        MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION);
                    break;
                    case 12:
                        LoadString(GetModuleHandle(NULL), 22, string, sizeof(string));
                        MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION);
                    break;
                    case 13:
                        DestroyWindow(hWnd);
                    break;
                }
            break;
        }
    
        // An Windows weitergeben und dessen Antwort als Rückgabewert zurück
        return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
    

    Aber wie man den letzten 2 MessageBoxes folgen kann, lässt MoveWindow
    das edit control verschinden. Anstatt die Größe anzupassen.
    Enthält wParam also doch nicht die neue Breite des Fensters oder
    woran liegt das?



  • Laut msdn stehen in lParam sowohl Höhe als auch Breite!

    MoveWindow(hEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), true);
    


  • #include <windows.h>
    
    LPCSTR MainClassName = "Texteditor";
    
    // Zum Empfangen und Auswerten der messages
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
        // Generelle Fensterstruktur registrieren
        WNDCLASSEX wc;
        wc.cbSize = sizeof(WNDCLASSEX);
        wc.style = 0;
        wc.lpfnWndProc = WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(0));
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        wc.lpszMenuName = MAKEINTRESOURCE(1);
        wc.lpszClassName = MainClassName;
        wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(0), IMAGE_ICON, 16, 16, 0);
    
        if(!RegisterClassEx(&wc))
        {
            MessageBox(NULL, "Konnte das Hauptfenster nicht registrieren!", "Fehler!", MB_ICONEXCLAMATION | MB_OK);
            return 0;
        }
    
        // Fenster erstellen
        HWND hWnd = CreateWindowEx(
            WS_EX_OVERLAPPEDWINDOW,
            MainClassName,
            "Titletext",
            WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
            CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
            NULL,
            NULL,
            hInstance,
            NULL
        );
    
        // Textbox ins Fenster setzen
        HWND hEdit = CreateWindowEx(
            NULL,
            "EDIT",
            "Gib was ein",
            WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
            0, 0, 400, 300,
            hWnd,
            NULL,
            NULL,
            NULL
        );
    
        // Fenster anzeigen
        ShowWindow(hWnd, iCmdShow);
    
        // Auf Messages reagieren
        MSG wmsg;
        while( GetMessage(&wmsg, NULL, 0, 0) )
        {
            TranslateMessage(&wmsg);
            DispatchMessage(&wmsg);
        }
    
        return wmsg.wParam;
    }
    
    HWND hEdit;
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
        char string[255];
    
        switch (iMsg)
        {
    		case WM_SIZE:
    			MessageBox(NULL, "noch siehst du das edit control", "noch zu sehen", MB_OK);
    			hEdit = GetTopWindow(hWnd);
    			MoveWindow(hEdit, 0, 0, LOWORD(wParam), HIWORD(lParam), true);
    			MessageBox(NULL, "und weg ist es", "jetzt nicht mehr", MB_OK);
            break;
            case WM_CLOSE:
                DestroyWindow(hWnd);
            break;
            case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
            case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                    case 11:
                        LoadString(GetModuleHandle(NULL), 21, string, sizeof(string));
                        MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION);
                    break;
                    case 12:
                        LoadString(GetModuleHandle(NULL), 22, string, sizeof(string));
                        MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION);
                    break;
                    case 13:
                        DestroyWindow(hWnd);
                    break;
                }
            break;
        }
    
        // An Windows weitergeben und dessen Antwort als Rückgabewert zurück
        return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
    

    Selbes Problem. Verändert sich nichts.



  • Guck nochmal was geeky als letztes gepostet hat.



  • Au mann! Die breite und Höhe wird als eine einzige Long übergeben!
    LOWORD() spaltet die long und gibt die WORD, die sich aus den
    linken bytes ergibt, während HIWORD() eine WORD aus den rechten
    bytes holt. So, wie er geantwortet hat, funktioniert es immerhin.

    Anders kann ich es mir ja nicht erklären...


Anmelden zum Antworten