Помогите мне пожалуйста! Я начинающий программитс, у меня возникла необходимость создавать дочерние окна с невидимыми границами без всяких там титлбаров, т.е. просто прямоугольничек, но имеющий свойства дочернего окна. Какие должны быть параметры при регистрации классов окон и при создании?
Здравствуйте, FantomCat, Вы писали:
FC>Помогите мне пожалуйста! Я начинающий программитс, у меня возникла необходимость создавать дочерние окна с невидимыми границами без всяких там титлбаров, т.е. просто прямоугольничек, но имеющий свойства дочернего окна. Какие должны быть параметры при регистрации классов окон и при создании?
При создании окон в CreateWindowEx() нужно передать в качестве стиля только WS_CHILD — и не будет ни рамок (WS_BORDER, WS_THICKFRAME), ни заголовка (WS_CAPTION). Регистрация класса тут ИМХО не при чем.
SDB>При создании окон в CreateWindowEx() нужно передать в качестве стиля только WS_CHILD — и не будет ни рамок (WS_BORDER, WS_THICKFRAME), ни заголовка (WS_CAPTION). Регистрация класса тут ИМХО не при чем.
Вы знаете, это оказалось не совсем то, что мне нужно. Мне в таком окошечке нужно выводить рисуночек, а окошка совсем не видно. Если я добавляю WS_VISIBLE, то получается стандартное виндозовское окно. Помогите, пожалуйста!!!!!
Здравствуйте, FantomCat, Вы писали:
FC>Вы знаете, это оказалось не совсем то, что мне нужно. Мне в таком окошечке нужно выводить рисуночек, а окошка совсем не видно. Если я добавляю WS_VISIBLE, то получается стандартное виндозовское окно. Помогите, пожалуйста!!!!!
Здравствуйте, FantomCat, Вы писали:
SH>>Код покажи — помогем. FC>Показываю
[..]
Не уверен, что понял, что именно ты показал. Понял следующее: ты создаёшь MDICLIENT, посылаешь ему WM_MDICREATE с приведённой структурой, у него какая-то оконная процедура с приведённым WM_PAINT-ом.
Правильно? Если да, то в следующий раз так и пиши, если нет — тем более
в стилях укажи че-нибудь такое: WS_CHILD | WS_VISIBLE
если не поможет — попробуй CreateMDIWindow
Но может и это непомочь. С MDI я таких штук не пробовал.
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, FantomCat, Вы писали:
SH>>>Код покажи — помогем. FC>>Показываю SH>[..]
SH>Не уверен, что понял, что именно ты показал. Понял следующее: ты создаёшь MDICLIENT, посылаешь ему WM_MDICREATE с приведённой структурой, у него какая-то оконная процедура с приведённым WM_PAINT-ом.
SH>Правильно? Если да, то в следующий раз так и пиши, если нет — тем более
SH>в стилях укажи че-нибудь такое: WS_CHILD | WS_VISIBLE SH>если не поможет — попробуй CreateMDIWindow
SH>Но может и это непомочь. С MDI я таких штук не пробовал.
Ты правильно понял, но!!!! Мне надо, чтобы у этого окна не было видно границ и чтобы оно было жестко прикреплено (нельзя его передвигать)к владельцу. Т.е. я не могу сделать позрачной границу. Во как!
Здравствуйте, FantomCat, Вы писали:
FC>Ты правильно понял,
Это радует
FC>но!!!! Мне надо, чтобы у этого окна не было видно границ и чтобы оно было жестко прикреплено (нельзя его передвигать)к владельцу. Т.е. я не могу сделать позрачной границу. Во как!
0. Без MDI в простом приложении пробовал? Там-то уж точно должно работать.
1. CreateMDIWindow пробовал?
2. SetWindowLong + GWL_STYLE пробовал?
Ну и типа окно показывает. Конечно, реально придется или субклассировать окно через SetWindowLong,
или регистрить оконный класс. Чтобы ловить перерисовку.
А так — может, забыли ShowWindow вызвать?
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
SW>Ну и типа окно показывает. Конечно, реально придется или субклассировать окно через SetWindowLong, SW>или регистрить оконный класс. Чтобы ловить перерисовку. SW>А так — может, забыли ShowWindow вызвать?
SW>Slicer
Не знаю, уже все испробовано. Не получается.Если при создании окна не задаю WS_VISIBLE, то никокие шоувиндоу не помогают — не видно этого окна, в противном случае есть границы и титлбар.
SergH
Мне нужно именно MDI-приложение
CreateWindowEx не помогает — все та же фигня
SetWindowLong + GWL_STYLE аналогично!!!
Здравствуйте, FantomCat, Вы писали:
... FC>Не знаю, уже все испробовано. Не получается.Если при создании окна не задаю WS_VISIBLE, то никокие шоувиндоу не помогают — не видно этого окна, в противном случае есть границы и титлбар.
FC>SergH FC>Мне нужно именно MDI-приложение FC>CreateWindowEx не помогает — все та же фигня FC>SetWindowLong + GWL_STYLE аналогично!!!
FC>А мне позарез надо!
Обязательно ли делать дочернее окно. Если нет, то в PreCreateWindow(CREATESTRUCT& cs) достаточно сделать
cs.style = WS_POPUP;
и будет окно без границ и титла. Естественно нужен CreateWindowEx.