Use GParted to resize your partition on your HDD so that it is smaller than the size of your SSD. You may have to remove data to make it all fit - depends on how big of an SSD/how much data you have on your HDD.
Now, for the actual cloning part... Use CloneZilla or Acronis. I use CloneZilla, and it's free.
Now, what you'll want to do is have a 3rd hard drive (either external or internal, doesn't matter) available for this. You'll want to create an IMAGE of your HDD, and save it to the 3rd HDD. Then, after the image is done saving, you can unplug your source HDD, and put it aside.
Now, re-run CloneZilla and choose the "IMAGE TO DISK" option (or Restore from Image... I can't remember the exact wording). After the restore is finished, make sure the SSD is the only drive plugged in and try to boot off of it into Windows. After you boot into Windows successfully, you're nearly done.
Now you'll want to run a chkdsk command which clears the bad sector store. To do this, in WIndows open up a Command Prompt as admin (Start > type cmd > Right click > Run as Admin). Type this in the command prompt window: chkdsk c: /b
It will say "Cannot lock current drive" and ask to run on next reboot. Type Y and hit enter, then reboot. Let it run on boot.
Now, after you verify everything is working in Windows, we can boot back into GParted LiveCD and wipe your HDD. Plug your HDD back in (unplug SSD and other drives as well), and boot into GParted again. Select your HDD you want to format, and then delete all partitions, then create a new volume/partition and format it as NTFS.
Shutdown, plug all your drives back in, and then boot off your SSD into Windows. Your old HDD should be picked up.