Keep in mind that this only works with DRM Free music (IE, stuff that you could transfer and play on another computer.)
Here is a link to download Audacity. Its not required, but its an option as you will see later.
I had to combine these 2 sources to get this to work, but I finally got it. This How-to is 99% guaranteed to work, and I will update as needed (If wanted) but it worked for me. (and it will get you around the damn permissions in windows 7 which is why I had to go to the second site)
OK, now for the goodies.
Before I get started here, I HIGHLY recommend making the top half of your "Advanced" tab in preferences look like this (to get here click Edit, Preferences, Advanced) This will automatically organize all of your music, and have it all in one spot. It should ask if you want to move all of your files to the new folder locations. Click yes, and let it do its magic. (if you really know what you're doing with a computer, you can substitute the "C:\Users\*username*\Music" with wherever you want all of your music to be stored.) Most people just use the "My Music" folder as it is already set up. I know some people (like I used to) may like to manually sort all their music, but after I did this, it makes it SOOOO much easier. (It's also much easier to delete those damn doubles that sometimes pop up for no apparent reason) This will take a while, but it's well worth it.
Another trick you can do is select all of your music that doesn't have a track name (IE, its named "Track 1" or something to that effect) and right click, then click on "Get Track Names" It probably won't get all of them, but it might get a few. Can't hurt to try.
Anyways, Now for the ringtones.
First, choose a song that you want to have a ring-tone for. For this How-To I'm going to use "Hands Held High" by Linkin Park
You can do one of 2 things at this point.
A: Edit the song in an external program such as audacity, then add it to your iTunes Library. (Track time must not exceed 40 seconds.)
B: Right click on the song, click "Get Info, Options", then set the Start and Stop time. (Track play time must not exceed 40 seconds.)
KEEP IN MIND THE RINGTONE CAN BE NO LONGER THAN 40 SECONDS
Next, go back into the preferences, ("Edit, Preferences") but this time you want to be in the General tab. Click on "Import Settings, then AAC Encoder". (Make it look like this)
Make sure the song you want to convert is selected, then click "Advanced, Create AAC Version"
It should have 2 songs of the same name. One that's the actual length, one that's shorter. (Under 40 seconds)
Right Click on the shorter track, then click "Show in Windows Explorer".
An Explorer window should pop up, with the track highlighted in it.
Check the time at the bottom of the screen to ensure that the correct track is selected, then move the file to the desktop. (Hold Right Click, Drag File, Release, Left Click "Move File")
After the song is moved to your desktop, you will want to go back to iTunes and delete the clipped version (make sure you have the right one)
Now, go into the start menu, and type "run" into the search bar, and hit Enter.
Type "cmd" into the Run window, hit Enter.
A black Command Prompt window should appear.
Type this into the Command Prompt window. "CD C:\users\stephen\desktop\"
(NOTE: Replace "stephen" with your username.)
Hit "Enter". It should look like this.
Type this into the Command Prompt window. "ren *.m4a *.m4r"
Hit "Enter" It should look like this.
That will change the extension from .m4a (AAC file) to .m4r (Ringtone file).
Type "exit" and hit enter, or click the red X to close the command prompt window.
Double-click the ringtone on your desktop, this will open it in iTunes.
Delete the ringtone off your desktop, and try playing it from the iTunes window. If it does not play, you will have to restore it from the recycle bin, and manually drag it into the Ringtones folder.
I hope that helps, and I will edit as needed.