Here is some Code i used:
//ff=GetInvAt (mouse.x, mouse.y);
GUIOn(3);
SetButtonPic (3, 0, 1, 100);
SetButtonPic (3, 0, 1, -1);
i know it can be done because i saw it.
and it keeps Object Not Valid?
Actually, you can do this automatically...
Just make the button's text: (INV) or (INVNS). Then the active inv item will be drawn on top of the button graphic.