Если вы запустите это в отладчике и установите точку останова на erro
, вы найдете что-то вроде этого (вывод из GDB):
Breakpoint 1, erro (coderro=100901) at test.c:12
12 estring=gluErrorString(coderro);
(gdb) bt
#0 erro (coderro=100901) at test.c:12
#1 0xf7dd7782 in gluQuadricError (qobj=0x81ddb70, which=100901) at src/libutil/quad.c:81
#2 0xf7dd85ad in gluPartialDisk (qobj=0x81ddb70, innerRadius=0, outerRadius=5, slices=1, loops=1, startAngle=0, sweepAngle=360) at src/libutil/quad.c:450
#3 0xf7dd84c8 in gluDisk (qobj=0x81ddb70, innerRadius=0, outerRadius=5, slices=1, loops=1) at src/libutil/quad.c:427
#4 0x08048af2 in tela () at test.c:36
#5 0xf7f72da8 in fghRedrawWindow () from /usr/lib/libglut.so.3
#6 0xf7f72df3 in fghcbDisplayWindow () from /usr/lib/libglut.so.3
#7 0xf7f77a90 in fgEnumWindows () from /usr/lib/libglut.so.3
#8 0xf7f72e47 in fghDisplayAll () from /usr/lib/libglut.so.3
#9 0xf7f73f39 in glutMainLoopEvent () from /usr/lib/libglut.so.3
#10 0xf7f73f97 in glutMainLoop () from /usr/lib/libglut.so.3
#11 0x08048b52 in main (argc=1, argv=0xffffd4e4) at test.c:48
Итак, ошибка исходит от gluDisk
, Теперь простая попытка поиграть с его параметрами позволяет мне догадаться, что виновником является slices=1
, что действительно не имеет смысла. Установка его, например, 2
избегает попадания в обратный вызов ошибки.
Можно сделать это использование управления RichTextBox, которое позволит Вам устанавливать стиль подчеркивания и цвет подчеркивания на любой части текста.
И вот пример, делающий точно, что Вы хотите сделать.
используйте программу проверки правописания Google
http://www.asp101.com/articles/jeremy/googlespell/default.asp
Эта страница показывает, как привлечь владелец TextBox для проведения волнистой красной линии.