Здравствуйте, byterus, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
B>Все правильно, нужно вызывать Invalidate, чтобы родитель перерисовал задний план,
Спасибо. Плучилось, но все равно не так. Я вызываю Invalidate родительсокго окна через Parent.Invalidate, происходит постоянное моргание когда я навожу мышку. Подбные контролы(к которым я стремлюсь) так не моргают.
Я понял, что прорисовывается все окно, поэтому вызываю API-функцию InvalidateRect в которую передается дискриптор окна и прямоугольник для очистки. И опять-таки все наполовину. Дейтсивтельно форму не мрогает, но зато когда назимаю на конопку, она сзчезает и появляется только когда я начинаю двигать мышью по кнопке.
Как с этим оборость?
B>А рамку лучше рисуй DrawFocusRect, естественно она пропадает после второго раза прорисовки на себя, она же использует инверсию, так что нужно рисовать один раз чтобы появилась и второй чтобы исчезла, но если ты будешь вызывать Invalidate второго раза не потребуется.
Приходиться использовать свою процедуру, так как мне нужно обрисовать не пунктиром, а точками необходимую область. А стандартный стиль Dot почему рисует коротким пунктиром. Но это ничего. Я так понял, что перерисова по нечетным разам была из-за того что не перерисовывался холст родительской формы.