I'm not too familiar with PictureBox controls' text capabilities, but I can probably answer your inversion problem.

BitBlt should work fine. BitBlt the area you want to invert to itself with &H550000. Then make sure you refresh your control, and that the control's AutoRedraw property is set to true (otherwise changes'll get erased when you redraw).

And if you still can't get BitBlt to work, try to manually invert the pixels. It's much slower, but if you're working with a small enough area, shouldn't be too much to worry about. Use SetPixel and GetPixel to do it, it's faster than Pic1.pset and Pic1.point are. To invert, just calculate the color by substracting the value of a pixel from &HFFFFFF. For example, you could do something like...

for i = 0 to 99
for j = 0 to 29
SetPixel(Pic1.hDC, i, j, &HFFFFFF - GetPixel(Pic1.hDC, i, j))
next
next

It goes without saying that the picturebox control'll probably have to be refreshed, and that the AutoRedraw property is set to true.