Windows will not work in a read only mode but some virtual software can use a feature called Undo Disks.
So, the user boots up their virtual machine, run it, use the apps and change settings and save files etc as normal. These changes are saved on a undo vhd disk.
When the vm is shutdown, you are sometimes given the option to merge the changes onto the main vhd or forget them and revert back to the 'factory' default as you originally want it. See virtual machine settings on how to create an undo disk.
If the VM does not support undo disks, you can create a snapshot before a user uses the vm machine. Then when the user is done, you can revert the machine back to the snapshot afterwards.