У меня проблемы с производительностью в Windows-7 (и, возможно, в Vista), с вызовами CreateWindowEx ().
Некоторые окна, которые я создаю, занимают намного дольше в Windows-7, чем в XP.Время может достигать 15-25 мс, что очень много, когда вам нужно создать много.(Время на XP постоянно равно 0-2 мс.) Почему это?и что можно сделать?
Все окна созданы в одном потоке.Некоторые встроены в оконные классы, некоторые мои.Мне кажется, что все окна с WS_POPUP [EDIT: и WS_EX_TOOLWINDOW] страдают от этой задержки, а все окна без нее - нет.(Но фактической причиной, конечно же, может быть какое-то другое свойство.) Кажется, это применимо ко всем моим окнам, кроме элемента управления RICHEDIT_CLASS, который является единственным, который непостоянно изменяется между 1-30 мс, но только на 7. Спасибо!
[РЕДАКТИРОВАТЬ: приложение больше всего страдает от многих (~ 300) всплывающих подсказок, созданных при создании главного окна, с использованием gToolTip .Я мог бы отложить создание всплывающей подсказки, пока не появится окно, но у меня есть другие «злые» окна, и я все еще хотел бы точно понять, что происходит]
ОБНОВЛЕНИЕ: Моя проблема с инструментом-Советы значительно улучшены.Класс-обертка, который я использовал из CodeProject, не подходит [для вызова 300 раз, по одному разу для каждого элемента управления], так как он создает новое окно для каждого вызова.Хитрость заключается в том, чтобы создать одно окно с подсказкой (для каждого всплывающего окна), а затем отправлять ему только TTM_ADDTOOL-сообщение для каждого элемента управления.
Таким образом, производительность значительно улучшается, но заметное отставание все еще остается длядругие окна ...