The graphical user interface occupies an important position in the software development and the key issue is how to efficiently design the custom graphical user interface according to the function. This paper discusses several graphical user interface design techniques, including QT, MFC, WTL, WPF, GTK, wx Widgets, WEB, Java FX, and Direct UI and so on. Their advantages and disadvantages are compared, including design principles, application areas, and complexity and so on. Some Direct UI related technologies are discussed and it contains message delivery mechanism, graphics rendering engine, ...