Winapi смена "стиля окна" на классический?
Проблема в следующем:
Создал PRESETUP окно , через апи сделал его скругленным и обрезал заголовок. Но вылезла проблема окторую пока не нашел как решить- заключаеться она в том что стили окно имеют разную толщину. Т.е если я пишу под классическим стилем то и запуская прогу из блица наблюдаю нормльно все потому что окно для запущенной проги создаеться с тем же стилем что и установлен в винде. Но обнаружил некий глюк - при запуске на других компах все внутри окна приложения сдвинуто на несколько пикселей (от 3 до 5 ) и всю красоту портит зияющая полоска обрезанного окна :( Выяснилось (Огромное спасибо Моке) что вина в этом стилей виндовса. Собственно протестив - обнаружил что это действительно так. Но терь встяла проблема - как же решить сей неприятнейший момент. порылся в нете нашел только вот эти 2 функции с которыми так и не разобрался как они работают: api_GetWindowLong% (hwnd%, GWL_STYLE ) - это получение стиля окна api_SetWindowLong% (hwnd,GWL_STYLE,style ) - это смена текущего на новый по крайней мере я так понял. Покопавшись так ниче и непонял :(. Если кто сталкивался с данной проблемой - или же просто знает как решить эту проблему - прошу подсказать. С благодарностью заранее - спасибо. |
Ответ: Winapi смена "стиля окна" на классический?
Вобщем ниче не нашел - зато получилось схитрить 6) - вобщем оставил примерное по 10 пикселей канвы у фона меню. Ну и обрезаю в апи окно чуть шире чем без канвы - пирмерно на +4 пикселя сверху и снизу. И когда стиль в винде стоит шире то меню сьезжает - но вместо необрезанной области (полоска фона блица) терь показываеться канва :) - а она как бы продолжение менюхи. ну фобщем некий сдвиг сделал на случай не однородности стиля - который при разных стилях сьезжает вниз или приподнимаеться вверх на 4 пикселя (примерно). Таким образом глюк у меня был решен. Надеюсь кому то поможет - если так же как и я не найдет решение нормальное.Всем УДАЧИ!
|
Часовой пояс GMT +4, время: 08:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot