Перелопатил весь Интернет, разные программы, систему ковырял, так и не смог найти ответ на вопрос. Вопросы: Как можно сделать так, чтобы нарисованная иконка на non-client возле кнопок свернуть, закрыть и т. д. не мерцала? Выбрал направление в сторону запрета перерисовки non-client области, как это делает функция RedrawWindow,hWnd,ADDR rc,0,RDW_VALIDATE or RDW_UPDATENOW. В client области RedrawWindow хорошо справляется со своей задачей и иконка при изменении размеров окна не мерцает. Вот как эту RedrawWindow заставить работать в non-client или может, существует какая-то функция(и) которая может помочь осуществить задуманное? Может не в том направлении осуществлять задуманное начал? Цель: Создаю библиотеку, в которой будут несколько экспортируемых функций, их задачей будет добавлять в заголовок *.bmp, *.ico, *.png файлы (на выбор) и осуществляться работа как кнопки. То есть при нажатии на кнопку будет передаваться в сообщении WM_COMMAND ее ID. P. S. Может, кому встречалась программа, у которой при изменении размера окна не мерцала кнопка на заголовке? Дайте название этого чуда, хочу рипнуть код оттуда.
q_q Спасибо!!! Но видел я этот исходник он подходит только к Win`98 я исследовал проги типа FileBox eXtender и там применяется этот код, только из какой точно рипнул, я уже не помню. Code (Text): IsAppThemedGetAdressRun Proc .if IsAppThemed == 0 invoke LoadLibrary,ADDR szUxTheme_dll .if eax == FALSE ret .endif push eax invoke GetProcAddress,[esp+4],ADDR szIsAppThemed mov IsAppThemed,eax call eax call FreeLibrary .else call IsAppThemed .endif ret IsAppThemedGetAdressRun EndP Потом идет сравнение и если возвращается NULL, то тогда запускается код из этого исходника. Если покороче, то при нажатии на кнопку заголовок у окна изменяется на классический визуальный стиль Win`98, что не есть гуд. Я так понял что вина этого бага из-за применения функций работающих с регионами? Но вот почему при запуске все нормально хз.?
Сейчас написал *.exe для тестирования и чтобы кому тема интересна, визуально увидели, чего я пытаюсь сделать. При наведении/нажатии на кнопку она меняет вид и вызывает диалоговое окно. Также при изменении размеров окна влево/вправо кнопка не мерцает! Плз. выскажите свое мнение, здесь важна каждая буква, от которой можно логически отталкиваясь решить эту проблему. [Добавил] Что-то не получалось приаттачить, архивы битые получались? Залил без расширения, надо файл переименовать в Button.exe
Ну смотрел приаттаченый файл, а там кнопка лежит почему-то в клиентской области. Ужос! Чего-то у тебя там не того.. И как тебе помочь можно, если ты исходники не выкладываешь, в отладчике?