We have no idea why Windows in your case can not handle the dynamically allocated virtual disk. It may be worth to check the filesystem integrity or perform a defragmentation from your Windows guest OS.
Nevertheless we can easily increase the size of a dynamically growing virtual drive reported to the guest OS by issueing the following command run in a terminal:
VBoxManage modifyhd <uuid/name> --resize <newsize in MB>
Replace with the uuid or the filename (full path needed) of your virtual drive. These can be listed with the following command:
VBoxManage list hdds
Note that obviously we can not change the virtual drive size if we had taken snapshots or saved the machine's state instead of power off. Before we change the virtual drive's size we therefore need to delete all snapshots, or work on a clone to makes sure we do not loose a snapshot's content. Shrinking a dynamically growing disk is not possible.
After having resized the virtual drive we will then have to adapt the partition table of the guest to altered drive's size.
In Windows 7 go to Computer Management -> Disk Management to view new unallocated space (shown after resizing with adding 10 GB to the drive):
Right click on this unallocated partition to select "Extend Volume..." to increase the partition size. You may also do this with booting an Ubuntu live .iso on this virtual machine to resize partitions using gparted.
More details here: Virtual Box User Manual
See also: How do I increase the hard disk size of the virtual machine?
To physically shrink/compact a dynamically growing disk see: How do I shrink a dynamically growing VDI disk from VirtualBox?