I've straightened out more than a few bent bmx frames. Sometimes I'll wedge the rear end onto one of my workbench legs and tweak it back into shape, other times I've had someone stand on the frame while it's laying flat and I'll use a long 2 x 4 to tweak it back into alignment. If you run a string from one dropout up and around the headtube and then back to the other dropout you can measure from the string to the seat tube on each side to see if you have it straight.
For bent cranks I just clamp them in my vise and use a BFH to straighten them.