Посл.ответ |
Сообщение |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 28 декабря 2008 17:59 · Личное сообщение · #1
В програме есть окно которое не должно двигатся, т.е. при попытке перетащить его мышкой(или каким нибудь другим способом) оно не реагировало на это сообщение.
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
|
Ранг: 441.3 (мудрец), 297thx Активность: 0.41↘0.04 Статус: Участник
|
Создано: 13 января 2009 19:09 · Личное сообщение · #2
borov
При минимизации по-моему также срабатывает WM_WINDOWPOSCHANGING, при этом left, top, width и height у окна становятся равными 0
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 19:24 · Личное сообщение · #3
Блин, люди, смотрите мой исходник! Специально же писал:
При нажатии на окне (в любом месте) идёт отправка сообщения WM_NCLBUTTONDOWN, соответственно, в wParam находятся данные, где юзер нажал:
HTCAPTION - нажали на заголовке
HTSYSMENU - опять же на заголовке, но уже сюда и кнопки входят
HTGROWBOX - по моему, при нажатии на иконку или отключённую кнопку
HTSIZE - изменение размера
HTMENU - область меню
HTHSCROLL - скролл бар
HTVSCROLL - тоже скролл
HTMINBUTTON - кнопка минимизации
HTMAXBUTTON - максимизации
HTREDUCE - О_о хз
HTZOOM - О_о
HTLEFT - О_о
HTSIZEFIRST - начало ресайзинга
HTRIGHT - О_о
HTTOP
HTTOPLEFT
HTTOPRIGHT
HTBOTTOM
HTBOTTOMLEFT
HTBOTTOMRIGHT
HTSIZELAST
HTBORDER
HTOBJECT
HTCLOSE - кнопка закрытия
HTHELP
Короче, чё я апи переписываю, найдёте)
так вот, для перехвата этих данных нужно сделать:
в WndProc (или как там у вас, функция обработки мессаг окна) пишем:
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 19:25 · Личное сообщение · #4
to tihiy_grom:
А ты поробуй нормально перерисовать окно при WM_WINDOWPOSCHANGING без глюков!
Или это я не выспался, или я прав)
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 19:31 · Личное сообщение · #5
Так... узнал интересную весч)))
Если удалить пункт переместить из системного меню:
то окно тоже двигаццо не будет
Мда, форточки - восьмое чудо света)))
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 19:41 · Поправил: zombiee · Личное сообщение · #6
to borov:
Я ответил на твой вопрос? Окно будет окном, но реагиравать не будет ни на что.
Добавлено:
Вот так будет лучше) не реагирует вообще)
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 13 января 2009 19:58 · Личное сообщение · #7
zombiee пишет:
HTREDUCE - О_о хз
между прочем тоже кнопка минимизации
конешно спасибо за всю инфу, я узнал много нового, может что-то с этого и пригодится
zombiee пишет:
if(wparam==HTMINBUTTON){return HTCLOSE;} // Просто ради прикола, нажмите на конпку минимизации и у вас загорится кнопка закрытия))
у меня ничего не произошло
но дело в том что я б хотел чтобы кнопка нажималась, но ничего не происходило
а вот вариант тихого_грома я щас попробую
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 20:04 · Личное сообщение · #8
to borov:
borov пишет:
между прочем тоже кнопка минимизации
я уже пропарсил и всё понял) щас я выложу кое-что)
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 21:29 · Личное сообщение · #9
Блин, чёт никак... Перехватываю WM_NCLBUTTONUP, но почему-то оно не перехватывается О_о.
Кроч, в ок. функции добовляю кейс с WM_NCLBUTTONUP, но он пропускается, а WM_NCLBUTTONDOWN нормально отлавливает. У кого какие догадки?
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 13 января 2009 22:00 · Личное сообщение · #10
tihiy_grom пишет:
При минимизации по-моему также срабатывает WM_WINDOWPOSCHANGING
попробывал с этим помудрить, что то ни чего не получилось
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 22:18 · Личное сообщение · #11
WM_NCLBUTTONUP срабатывает только если окно максимилизированно О_о
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 22:26 · Личное сообщение · #12
В принципе, пашет, но это сообщение передаётся только после того, как окно свернулось на таск бар...
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 22:54 · Личное сообщение · #13
НАШЁЛ!!!!!!!!!!!!
Клацай, не клацай - ничего не произойдёт, но кнопки будут "нажиматься"!!!!!
Я крут
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 22:58 · Личное сообщение · #14
to borov:
Думаю, тема себя исчерпала) клосед?)
| Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 13 января 2009 23:23 · Поправил: zombiee · Личное сообщение · #15
Вот полный код для того, что тебе нужно) А вывод системного меню приходится брать на себя, что я и сделал)
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 14 января 2009 00:10 · Личное сообщение · #16
zombiee пишет:
вывод системного меню приходится брать на себя
ненужно
и все нормально будет
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 17.7 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 14 января 2009 00:15 · Личное сообщение · #17
to borov:
Можно и так)
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 14 января 2009 16:23 · Личное сообщение · #18
Не ляпайте вы по 4 поста подряд, есть же волшебная кнопка Правка. Стоит отлучиться ненадолго и уже...
| Сообщение посчитали полезным: |