Problem mit GetPixel und HDC
-
Hallo zusammen!
Ich versuche gerade eine DLL zu erstellen in der das Handle/oder DC von einem Bildfeld aus VB heraus übergeben wird.
Mit dem Handle (bzw. hab auch mit dem DC probiert) wollte ich dann mit GetPixel Pixelfarben auslesen. Leider funktioniert das nicht so.
Die Variable a kriegt immer den Wert 0xFFFFFFFF und dc ist immer 0x00000000Hier der Code:
long _stdcall Auswerten (HWND Fenster) { COLORREF a; COLORREF b; long i; HDC dc = GetDC(Fenster); a=GetPixel(dc,100,100); b = 0x00000000; for(i=0;i<=100;i++){ SetPixel(dc,i,i,b); } ReleaseDC(Fenster,dc); return 1; }Das ganze hat keinen besonderen sinn sondern ist nur zum testen.
Ronnie
-
Wenn GetDC 0x00000000 zurückliefert, dann heisst das, dass was falsch gelaufen ist. Evtl. wird kein gültiges Fensterhandle übergeben o.ä. Lass doch mal nach dem GetDC den erweiterten Fehlercode mittels GetLastError ausgeben.
HDC dc = GetDC(Fenster); if ( dc==NULL ) { DWORD dwError = GetLastError(); } else { //.. hier gehts weiter mit GetPixel ... }
-
Hallo!
Werd ich mal machen. Ich hab mir auch das FEnsterhandle ein VB angesehen und in VC steht bei Fensterhandle was anderes drin. Das Handle, was mir vb zurückgibt steht in VC unter Fenster->unused.Hat das was bestimmtes zu bedeuten?
Ronnie
-
Hallo,
hier ist das Ergebnis von dem Fehler:
1400 Invalid window handle. ERROR_INVALID_WINDOW_HANDLE
Das finde ich jetzt etwas merkwürdig.
Ronnie
-
Hallo, ich nochmal

Also, das Problem mit dem Fensterhandle hab ich jetzt gelöst. Hatte das Handle von VB aus nicht als Wert übergeben.
GetPixel liefert mir aber trotzdem immer nur 0xffffffffHat jemand ne Idee??
Ronnie