Drawing only a portion from an image can be done like this:
Code:
DXDraw1.surface.Draw(10,10,rect(10,10,50,50),yourSurface,false);
I've tried using large (800x600) images in the past as well. However, when using them in combination with a DXImagelist, it made my game go much much slower. So, the only way it works is when you don't use the DXimagelist, and load the images during runtime.