Problem of Getpixel on PocketPC 2000 and PocketPC 2003


Licensed User
I use the following code to test Getpixel in Pocket PC2000/2003/WM5/WM6.

The getpixel returns same values of the cRed/cGreen/cBlue constants in WM5 and WM6.

But in PocketPC 2000 and PocketPC 2003, pointing on
red circle returns -524288
green circle returns -16744448
blue cirlce returns - 16776968

Any walk around resolve it?

Sub Globals
'Declare the global variables here.

End Sub

Sub App_Start
label1.Text = "cRed = " & cRed & " RGB(255,0,0)" & Rgb(255,0,0)
label1.Text = label1.Text & crlf & "cGreen = " & cGreen & " RGB(0,255,0)" & Rgb(0, 255,0)
label1.Text = label1.Text & crlf & "cBlue = " & cBlue & " RGB(0,0,255)" & Rgb(0,0,255)

form1.Circle(0, 120, 50, cRed, F)
form1.Circle(100, 120, 50, cGreen, F)
form1.Circle(180, 120, 50, cBlue, F)

End Sub

Sub Form1_MouseMove (x,y)
label2.Text = form1.GetPixel(x, y)
End Sub


Licensed User
It has been brought up in another thread, and is suposed to be related to the maximum screen colors possible on the device...

WM5 and WM6 devices support up to 65k colors, but older devices may not support as many colors thus giving diferent relation colors for the R,G,B factors, being the only twoo "standart" colors the black (0,0,0) and the white (255,255,255) or what ever maximum values are alowed...


Licensed User
What you can do (at runtime) is to check the color of a known pixel and store it in a variable. Now compare other pixel's colors to this variable.

Yes. That works.

I use a variable to keep the color immediately after the graph is draw, then use the variable to check against the getpixel.