Форум программистов, компьютерный форум, киберфорум
Assembler: MASM64, х64/long mode
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.04.2022
Сообщений: 8

Как создать тень вокруг POPUP окна

05.05.2023, 23:25. Показов 1892. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать тень вокруг окна POPUP как в Windows? Видел пример на С++ здесь
Как сделать тень у окна?

Вроде сделал как написано но заголовок окна не закрашивается, может есть какие то другие способы или есть примеры на .asm?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2023, 23:25
Ответы с готовыми решениями:

Как добавить тень вокруг окна?
Как добавить день? а то получается такой вот бред

Тень вокруг окна
Нашел такой способ создать тень к форме: public partial class Form1 : Form { protected override CreateParams CreateParams...

Подскажите как создать тень у окна?
А можно пример?!?

1
4187 / 1835 / 220
Регистрация: 06.10.2010
Сообщений: 4,123
12.07.2025, 14:17
Из интереса переписал тот исходник на FASM. Тень не появилась, при изменении размеров окно ломается.
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
format PE64 GUI
include 'encoding\win1251.inc'
include 'win64w.inc'
 
prologue@proc equ static_rsp_prologue
epilogue@proc equ static_rsp_epilogue
close@proc equ static_rsp_close
 
entry $
  sub    rsp,8
  frame
  invoke CreateWindowExW,0,strStatic,0,WS_VISIBLE+WS_OVERLAPPEDWINDOW,0,0,640,480,0,0,0,0
  mov    rbx,rax
  invoke DwmExtendFrameIntoClientArea,rax,margins
  invoke SetWindowPos,rbx,0,0,0,0,0,$227
  invoke SetWindowLongPtrW,rbx,GWLP_WNDPROC,WndProc
  @@:invoke GetMessageW,msg,0,0,0
     invoke DispatchMessageW,msg
  jmp @b
  endf
 
proc WndProc wnd,msg,wParam,lParam
  cmp rdx,WM_NCCALCSIZE
  je .WM_NCCALCSIZE
  cmp rdx,WM_CLOSE
  je .WM_CLOSE
  add rsp,40
  jmp [DefWindowProcW]
  ret
  .WM_NCCALCSIZE:xor    eax,eax
                 test   r8,r8
                 je @f
                   invoke SetWindowLongW,rcx,0,0
                   mov    eax,1
                 @@:
                 ret
       .WM_CLOSE:invoke ExitProcess,0
  ret
endp
 
align 2
strStatic du 'STATIC',0
margins   dd 0,0,0,1
msg       MSG
 
data import
  library kernel,'KERNEL32.DLL',\
          user,'USER32',\
          dwmapi,'DWMAPI.dll'
 
  import kernel,\
         ExitProcess,'ExitProcess'
 
  import user,\
         CreateWindowExW,'CreateWindowExW',\
         SetWindowLongPtrW,'SetWindowLongPtrW',\
         SetWindowLongW,'SetWindowLongW',\
         GetMessageW,'GetMessageW',\
         DispatchMessageW,'DispatchMessageW',\
         DefWindowProcW,'DefWindowProcW',\
         SetWindowPos,'SetWindowPos'
 
  import dwmapi,\
         DwmExtendFrameIntoClientArea,'DwmExtendFrameIntoClientArea'
end data


Я когда то писал, что-то похожее без dwmApi - https://www.cyberforum.ru/atta... 1345189517, на современных системах работает криво.

Добавлено через 1 час 1 минуту
В msdn пишут, что DwmExtendFrameIntoClientArea расширяет неклиентскую область окна, проверил - так оно и есть. Ещё пишут, что при отрицательных значениях margin должен включиться эффект стекла, у меня на Win11 не заработало.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.07.2025, 14:17
Помогаю со студенческими работами здесь

При перетаскивании окна на рабочем столе отображается тень окна, как это убрать?
Помогите разобраться,при перетаскивании окна на рабочем столе отображается тень окна,как это убрать?В свойствах отображение содержимого...

Как сделать тень у окна?
У меня есть чистое окно со стилем WS_POPUP. Что нужно сделать чтобы окно отбрасывало тени во все стороны? WNDCLASS wc; wc.style =...

Тень вокруг треугольника
Здравствуйте. Вот код создающий треугольник #triangle-right { width: 0; height: 0; border-top: 10px solid transparent; ...

Тень вокруг формы
Хочу сделать для win форму, чтобы у нее не было title с кнопками, ну как при BorderStyle-none, но при этом визуально форма отбрасывала тень...

Тень вокруг формы
Нашел такой способ создать тень к форме: public partial class Form1 : Form { protected override CreateParams CreateParams...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru