Salut,
Moi aussi je cherchais une telle fonction mais sans rien trouver. Ce serait très pratique si Microsoft l'ajoutait. Pour appliquer une police à tous les controles d'une fenêtre d'un seul coup, il y'a deux solutions en plus de celle proposée par vecchio56.
1- Les handles de tous les controles sont mis dans un tableau à leur création. Ca rend le code moins lisible mais permet d'envoyer le message à tous ces controles en une seule ligne:
for (int i=0; i<n;i++) SendMessage(hnd[i],WM_SETFONT,.....
n est le nombre total des controles (hdn[n])
2- L'emploi de la fonction GetWindow:
HWND hnd[10];
hnd[0]=GetWindow(hWnd,GW_CHILD);
SendMessage(hnd[0],WM_SETFONT,.......
for (int i=1;i<10;i++)
{
hnd[i]=GetWindow(hnd[i-1],GW_HWNDNEXT);
if (hnd[i]) SendMessage(hnd[i],WM_SETFONT,.......
}
Selon MSDN, EnumChildWindows() est péférable car GetWindow() risque de boucler à l'infini dans certains cas. Ca ne m'est pas encore arrivé donc je ne connais pas ces cas.