50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
|
|
1 | |
Окно со стилем рамки bsNone ведущее себя, как bsSizeable19.09.2012, 20:37. Показов 1773. Ответов 12
Метки нет (Все метки)
Подскажите, какие API-функции использовать для эмуляции полноценного окна. Конкретно интересует обработка Win+стрелки и "удары" о границы экрана.
0
|
19.09.2012, 20:37 | |
Ответы с готовыми решениями:
12
Изменение размеров формы без рамки (bsnone) Как создать окно без рамки? Как создать окно со стилем "поверх всех окон"? Разница между стилем css и стилем в коде html |
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
|
|
20.09.2012, 00:02 [ТС] | 3 |
Нужно создать форму, которая будет без стандартных элементов управления (свернуть, развернуть, закрыть), т.е. создаётся форма со стилем bsNone. Но дело в том, что для такого окна не обрабатываются события удара о границы экрана (например, о верхнюю часть). Насколько я знаю, всё это обратывает и отрисовывает специальный процесс (dwm.exe), поэтому нужно ему как-то сообщить по средствам API или отправки специального сообщения то, что моё окно было "ударено" о границы экрана.
0
|
Супер-модератор
|
|
20.09.2012, 02:30 | 5 |
Avazart, это ж "Aero Snap", подводишь окно к верхней/левой/правой кромке экрана - оно автоматически распахивается на половину экрана.
T2skler, сомневаюсь я, что возможно задействовать эту фишку для окон с bsNone
0
|
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
|
|
20.09.2012, 20:54 [ТС] | 6 |
В Nokia Suite и Steam отсутствуют стандартные кнопки управления окном и скорее всего у них стиль рамки bsNone, но всё-таки эти функции реализованы.
0
|
20.09.2012, 22:19 | 7 |
Два варианта на вскидку: номер раз - анализируй положение окна своими силами и меняй его размер\положение подобно поведению aero snap при касании границ экрана; номер двас - незаметно таскай под целевой формой еще одну форму сходного размера, но уже со стилем bsSizeable, и при скачкообразном изменении ее размера\положения подгоняй под них размер\положение целевой формы. Довести до ума это дело будет не совсем, чтобы просто.
0
|
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
|
|
21.09.2012, 00:26 [ТС] | 8 |
А есть варианты с перекрытием отрисовки окна (без кнопок и прозрачной рамки)?
0
|
Я Фоюмчанин ? дааааа)
|
|
21.09.2012, 08:25 | 10 |
В виндовс обрабатываються удары для всех приложений и только в верху экрана,
Влево, вправо и вниз вы что угодно запихнёте,а вот в верху выбросит обратно. И с bsNone всё тоже самое. Так что если вы хотите что бы у вас обрабатывалось со всех сторон то напишите функцию WndProc где сравниваее Left, Top, Width, Height c параметрами экрана и в соответствии делаете что нужно. И нужно было укозать свою ОС У меня windows 7 и вверх экрана нельзя запихнуть ничего, какой бы там стиль небыл.
1
|
Супер-модератор
|
|
21.09.2012, 10:37 | 11 |
Неправда. Ни bsNone, ни bsDialog, ни даже обычное окно, у которого просто задизейблена кнопка "Максимизировать", не будут отрабатывать AeroSnap.
Можно. Окно с двойным заголовком и активной кнопкой Maximize распахнется на весь экран, если его "бросить" на верхнюю границу экрана. По крайней мере, так должно быть. Если у тебя этого не происходит - это сугубо проблема твоей установки.
0
|
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
|
|
21.09.2012, 13:03 [ТС] | 12 |
...
Удар о верхнюю часть экрана расширяет окно приложения на весь экран (аналог - развернуть). При форме bsNone не обрабатываются удары, если бы это было не так, то данного топика сейчас бы здесь не было. Скриншоты явно указывают на Windows 7, ибо в предыдущих версиях не было Aero Snap, а в 8-ке,. во-первых, нету пуска, а во-вторых, в нижнем правом углу написано Windows 8 Enterprise N.
0
|
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
|
|
04.10.2012, 09:08 | 13 |
T2skler, окна ведь разворачиваются не при ударе окна о край монитора, а при ударе курсора в момент перетаскивания.
Что в этом сложного, при перетаскивании следить за координатами курсора и при касание границы экрана менять размер окна?
2
|
04.10.2012, 09:08 | |
04.10.2012, 09:08 | |
Помогаю со студенческими работами здесь
13
Окно без рамки Как перетаскивать Form, если BorderStyle = bsNone Переместить окно без системной рамки Окно поверх окон, без рамки. лаг Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |