keks-n » 18.08.2007 (Сб) 21:47
Тормоза у меня были при рисовании картинки с альфа-каналом(стандартный AlphaBlend его Очень криво понимал, пришлось писать своё, которое из-за 2-х BitBlt нипадеццки тормозило).
Это раз.
Во вторых, для своих размеров рамки и заголовка надо самому считать размер клиентсой области окна и выдавать из в винде сабкласся WM_NCCALCSIZE, после чего рисовать только в неклиентской области. Тогда никаких тормозов не будет. И ещё - вздумаешь юзать GradientFill - рисуй примитивы по отдельности а не все одним вызовом, иначе аццкие глюки.
Далее, DDraw юзать для вывода на экран нельзя, т. к. местный клиппер делает обрезку по клиентской области, его лучше юзать для внутренней отрисовки, а потом IDirectDrawSurface2->GetDC() и BitBlt, который прально обрежет.
P. S. Я планирую через месяц вернуться к работе над компонентом, переписав всё с нуля, но, боюсь, что он в итоге будет не бесплатным.