Lo que de un modo más sencillo te han indicado es que si quieres darle funciones avanzadas las crees tu mismo, es decir que el textbox tiene unas propiedades muy limitadas, podrías aún usar un richtextbox (y ya estarías usando todo los que RTF ofrece).
Si partes del hecho de que tu ismo creas tu propio control usar GDI implica que vas a construir todo es decir toma un picture como base para el control y con control gráfico podrás hacer cosas que no podrías sobre un textbox. Yo por ejemplo pondría dentro del propio picture un richtextbox, así ya tendría hecho bastante (pero si lo quieres controlar todo, incluso no lo metería).
Vamos que textbox no admite los métodos pset, circle, line, paintpicture,etc... pero si el picture. Coloca un picture, pon el fondo en blanco, calcula la ubicación de la fuente en el picture y eso es lo mismo que el textbox, sólo que sigues podiendo trabajar con los métodos gráficos... que en definitiva es con lo que podrás programas las cosas extras que se te ocurran. A su vez como el picture es en si mismo un contendor, siempre podrás colocar por ejemplo un shape para realizar la selección cambiando sus propiedades (siempre: borderstyle=0, drawmode=invert, zorder 0 ; sin selección : fillstyle=transparente con selección: fillstyle=solid) con picture podrás poner imágenes de fondo y con paintpicture podrás poner iconos donde quieras, también podrás insertar óbjetos image con la propiedad strecht=true para otros casos...
Suerte...