Sì ... utilizzando l' hwnd del desktop ... e' lo stesso ...

In realta' si usa la costante

Public Const HWND_DESKTOP = 0

e si chiama la

GetDC(HWND_DESKTOP)

che *non restituisce* l'handle dello schermo ma l'handle al device context del desktop (non e' importante la differenza ai fini dell'applicazione) ...

Attenzione al fatto che l'hdc (handle del device context) cosi' ottenuto va rilasciato con la API ReleaseDC quando non serve piu' ...

Per l'uso di un font diverso, devi crearne uno con la CreateFont e selezionare l'handle al font ottenuto tramite la SelectObject conservando l'handle dell'handle del font precedente.
Questo perche', al termine, deve essere selezionato il vecchio font e distrutto quello appena creato con la DeleteObject.