gParted on a Linux live disc is what I use for all partition editing.
You cannot easily adjust the size of a partition that is mounted (i.e. in use) such as C: on a Win machine. You need to boot from some other disk to make life simple.
I boot up a Linux Live DVD which has a copy of gParted on it. That lets you easily adjust the size of NTFS, FAT32, FAT, ext2, ext3, ext4 partitions.
I’ve used it to change the sizes of the partitions on a dual boot laptop that has 2x NTFS partitions for Windows and 5 partitions for Linux. You can use gParted to mirror the existing disk contents ( I have a USB hard disk the same size as the computer’s disk for a bit image backup).
I needed to resize the Windows partitions without reinstalling. Worked like a charm. Then I needed to reinstall a new Linux image (upgrade from Mint 13 to Mint 18). Again gParted let me resize the ext4 Linux partitions and the reinstall of Linux left Windows untouched.
But… you need to practice first and you need to make a backup and if you haven’t got a gash computer you can afford to trash then it’s dodgy and prone to user errors when you are learning what needs to be done. That’s why it’s worth keeping and old computer about. You can always install Windows and not activate it and then practice playing with the partitons and checking it still boots etc. The fact it is not activated doesn’t matter, you are not going to use the machine, just practice not breaking your main machine.