Ah disculpa lo de a*=a no funcionaria porque a se esta alterando, vuelve a poner tu variable valor pero inicializala con el valor de a y ve multiplicándola por a.
El problema está en la función ya que no inicializas la variable valor, pero esa variable está demás porque simplemente podrías hacer a*=a y retornas a y en tu for revisa la condición de parada ya que si pones 2 a la 3 tu función hará 2 a la 4.
Puedes usar MFC nunca lo he probado pero tengo entendido que es bueno, también tienes GTK+, pero así de arrastrar botones y toda la cosa lo único que conozco es QT Creator.