Evidentemente habias hecho algo mal, antes de poner codigo compruebo que funcione. wsprintf no permite el especificador %f para numeros flotantes y %l no lo veo definido tampoco en sprintf que si soporta %f:
Código:
#include <windows.h>
#include <stdio.h>
void main()
{
char cadena[1024];
ZeroMemory(cadena, 1024);
sprintf(cadena, "PI %.8f", 3.14159265);
MessageBox(0, cadena, "Demostracion simple", 0);
}
El .8 sirve para especificar el numero de decimales.