C3 incorpora un motor de clases y una librería para construir interfaces de usuario. La mecánica es muy simple, basta con incluir la siguiente línea en el archivo principal de la apliación:
#include "Gui.ch"
A partir de este momento se crean automáticamente tres objetos: Application de la clase TApplication, Screen de la clase TScreen y Printer de la clase TPrinter.
El código del usuario se debe encargar de responder a los eventos que se generan durante la ejecucuón de la aplicación, en Windows ya no vale pintar en la pantalla y esperar acciones de usuario con Inkey() o funciones parecidas, ahora, simplemente respondemos a los eventos que vienen generados de forma no ordenada, es decir, antes podíamos esperar una acción del usuario haciendo un Inkey( 0 ), Prompt, Menu To, etc, y más o menos sabíamos lo que debería responder. Ahora no, ahora el usuario tiene delante de sí un montón de controles y puede interactuar con cualquiera de ellos, y en el orden en que desee, incluso, ni siquiera interactuar con ellos, y simplemente cerrar la aplicación.