CTRL+C and CTRL+BREAK Signals

The ctrl+c and ctrl+break key combinations receive special handling by console processes. By default, when a console window has the keyboard focus, ctrl+c or ctrl+break is treated as a signal (SIGINT or SIGBREAK) and not as keyboard input. By default, these signals are passed to all console processes that are attached to the console, causing the system to call the control handler function or functions associated with these processes. Detached processes (GUI processes or console processes started with the DETACHED_PROCESS or CREATE_NEW_CONSOLE flag) are not affected.

ctrl+break is always treated as a signal, but an application can change the default ctrl+c behavior in two ways that prevent the handler functions from being called: