Требуется именно TitleBar К примеру есть программы, которые его делают "стеклянным" и меняют изображения стандартных кнопок (закрыть, свернуть, развернуть)
Нашел что-то на подобии того, что требуется: http://udafsoft.by.ru/images/2008-01-27_183345.jpg (заголовок окна)
это виста, прикинь?) тебе надо динамическую PNG Glyth сделать, как на заставке CodeBlocks, где надо - прозрачнее где не надо - непрозрачное. хотя тормозить будет всё равно как прозрачное..
а... Так вот она какая! по-искал по "PNG Glyph" ничего толкового не нашел. Если какие-нибудь простенькие примеры? Или хотя бы принцип...
http://bbs.vbstreets.ru/viewtopic.php?p=6587386 http://bbs.vbstreets.ru/viewtopic.php?p=6681496 Может здесь что-нить найдешь...
piritus Делать окно без titlebar`а и рамки, а затем дорисовать их как png ) Или не связываться с png, а сразу дорисовывать их чрез GDI+ c использованием прозрачности.
Сделал окно без titlebar'а, загрузил png. Изображение на png прозрачное, а окно - нет. Т.е. получается, что сквозь прозрачный (загруженный из png) titlebar видно основное окно. Как можно дорисовать png, что бы под ним не было окна программы? Можно сделать как-нибудь прозрачной часть окна?
Попробовал: Код (Text): invoke GetClientRect ,hDlg, addr r invoke CreateRectRgn,0, 0, r.right, r.bottom mov FRGN,eax invoke CreateRectRgn,0, 0, r.right, 20 mov FRGN1,eax invoke CombineRgn,FRGN, FRGN, FRGN1, RGN_DIFF invoke SetWindowRgn,hDlg, FRGN, TRUE;FALSE invoke DeleteObject,FRGN Он обрезает верхнюю часть окна, а ее нужно сделать прозрачной...
piritus Не нужно ничего обрезать В твоем случае (png) полупрозрачная картинка - скин выводится на всё окно программы!, а затем на него в нужном месте накладывается дочернее (WS_CHILD) окно, которое и будет основным окном твоей программы, только не забудь стиль WS_CLIPCHILDREN для родительского окна со скином, иначе при таскании по экрану это безобразие будет сильно мерцать.
Не совсем понимаю... У меня есть диалоговое окно. Мне нужно создать обычное окно, к нему применить скин, а по-верх вывести диалоговое? Можешь привести кусок кода, для понимания?
Применил к окну слой из png. После отрисовки создаю дочернее окно (EditBox): Код (Text): invoke CreateWindowEx,WS_EX_CLIENTEDGE, ADDR ClassName2,NULL,\ WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\ ES_AUTOHSCROLL,\ 0,0,200,25,hWin,8,hInstance,NULL Ничего не происходит. Если создать дочернее диалоговое окно: Код (Text): invoke DialogBoxParam,hInstance,ADDR dlgname,hWnd,ADDR DlgProc,0 то программа запускается, но никаких окон не выводит (чистый экран) Я вобще хоть то делаю?