Сейчас на форуме: zds, tyns777, JustLife, 2nd, morgot, Rio, CDK123 (+4 невидимых)

 eXeL@B —› Программирование —› Обработка сыбытия при сворачивании окна на MASM
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 декабря 2008 17:35
· Личное сообщение · #1

Всем доброго времени суток. Вопрос у меня следующий - пишу я софтину на масме, в качестве основного использую диалоговое окно, и вот мне нужно, чтоб когда юзверь его сворачивает (это основное окно), то происходило выполнение определённых действий. Как мне привязать эти действия к сворачиванию окна?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 26 декабря 2008 17:50
· Личное сообщение · #2

.ELSEIF uMsg == WM_COMPACTING
блаблабла
.ENDIF

или что-то типа такого


msdn.microsoft.com/en-us/library/ms674887%28VS.85%29.aspx




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 26 декабря 2008 17:56 · Поправил: borov
· Личное сообщение · #3

WM_SIZE, в wParam(кажется) хранится состояние, одно из них SIZE_MINIMIZED

-----
Лучше быть одиноким, но свободным © $me





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 26 декабря 2008 18:24
· Личное сообщение · #4

Архангел а как же Си ????

Code:
  1. .ELSEIF uMsg == WM_SIZE 
  2. .IF wParam == SIZE_MINIMIZED 
  3. invoke ShowWindow,hWnd,NULL ; SW_HIDE
  4. invoke UpdateWindow,hWnd 
  5. .ENDIF 


-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 декабря 2008 18:25 · Поправил: ARCHANGEL
· Личное сообщение · #5

borov
Имелось ввиду вот это?


WM_SIZE Notification

The WM_SIZE message is sent to a window after its size has changed.

A window receives this message through its WindowProc function.

Syntax
WM_SIZE

WPARAM wParam
LPARAM lParam;


Parameters
wParam
Specifies the type of resizing requested. This parameter can be one of the following values.
SIZE_MAXHIDE
Message is sent to all pop-up windows when some other window is maximized.
SIZE_MAXIMIZED
The window has been maximized.
SIZE_MAXSHOW
Message is sent to all pop-up windows when some other window has been restored to its former size.
SIZE_MINIMIZED
The window has been minimized.
SIZE_RESTORED
The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies.
lParam
The low-order word of lParam specifies the new width of the client area.

The high-order word of lParam specifies the new height of the client area.

Return Value

mak
Си пока подождёт. Кстати, скачал эту книгу, которую ты советовал - С++ глазами хакера, да, есть ответы на некоторые вопросы, но надо было её назвать "С++ закрытыми глазами хакера)))".

mak
Спасибо, попробовал, как ты написал - есть контакт.

Кстати, раз такое дело, народ, подскажите, как мне сделать так, чтобы в моём приложении MAINICON из ресурсов отбражалась в верхнем левом углу окна?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 26 декабря 2008 19:23
· Личное сообщение · #6

ARCHANGEL пишет:
Кстати, раз такое дело, народ, подскажите, как мне сделать так, чтобы в моём приложении MAINICON из ресурсов отбражалась в верхнем левом углу окна?


Code:
  1. .data
  2. hIcon       dd         0
  3. ...
  4. .code
  5. invoke LoadIcon,hInstance,200
  6. mov hIcon,eax
  7. invoke SendMessage,hWnd,WM_SETICON,1,hIcon


Соответственно в ресурсах ...
Code:
  1. 200 ICON DISCARDABLE "mainicon.ico"


-----
Сотрудник DHARMA




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 26 декабря 2008 19:26 · Поправил: progopis
· Личное сообщение · #7

TrueLies
Зависит от типа диалога. Не всегда будет так прокатывать. Вообще когда свой класс окна создаёшь, там даже отдельно большая иконка и маленькая задаются:
Code:
  1. mov wc.hIcon,eax
  2. ...
  3. mov wc.hIconSm,eax

Кроме того, размер иконки тоже очень важен. В идеале должна быть пиктограмма 16x16




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 26 декабря 2008 19:34
· Личное сообщение · #8

ARCHANGEL пишет:
borov
Имелось ввиду вот это?

Да, извинити если не понятно написал

Пользуясь случаем, тоже есть вопрос по сворачиванию, как сделать так чтобы при сворачивании окно не сворачиволось, т.е. вобще не реагировала на это сообщение

-----
Лучше быть одиноким, но свободным © $me





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 декабря 2008 19:37 · Поправил: ARCHANGEL
· Личное сообщение · #9

progopis
Спасибо, проканало как только поменял иконку на 16x16. Но меня это устраивает. Вот только не понятно, что значит ICON DISCARDABLE, просто ICON если впишу в файл ресурсов - не работает
borov
а почему не убрать бы minimize из шапки окна вообще?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 26 декабря 2008 19:42
· Личное сообщение · #10

progopis
Так то оно так ... по уму надо юзать ICON_BIG и ICON_SMALL ....
Ссылка http://www.wasm.ru/forum/viewtopic.php?id=12746

-----
Сотрудник DHARMA





Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 26 декабря 2008 20:20 · Поправил: SER[G]ANT
· Личное сообщение · #11

ARCHANGEL пишет:
от только не понятно, что значит ICON DISCARDABLE, просто ICON если впишу в файл ресурсов - не работает

"Флажок DISCARDABLE указывает, что данный блок не обязательно хранить в фиксированной области памяти и что при необходимости его можно выгружать на диск."




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 26 декабря 2008 20:28
· Личное сообщение · #12

ARCHANGEL ну раз убрать тогда делай в настройках ресурсов Тул параметр , будет у тя только закрыть. Вот так книга что я говорил Использование ассемблера для оптимизации программ на C++
могу залить , но в нете есть

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 декабря 2008 20:34
· Личное сообщение · #13

mak пишет:
ну раз убрать тогда делай в настройках ресурсов Тул параметр , будет у тя только закрыть.
Спасибо, конечно, но я не совсем олень Рога только-только пробиваются. так что это пока знаю, как делается, а книжу, конечно, залей, если не тяжело, чтоб лишний раз не искать.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 26 декабря 2008 20:43
· Личное сообщение · #14

Vovan666 пишет:
или что-то типа такого

Мда... Читать креклаб не научился. Зато каждый 2-ой "советчик" в гугл и мсдн посылает. Меня тоже (когда я был новичком и в прогании и в крекинге - до-до, я злопамятный) любили посылать...

Ну так вот, читаем:
The WM_COMPACTING message is sent to all top-level windows when the system detects more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low.

http://msdn.microsoft.com/en-us/library/ms632618(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms632618(VS.85).aspx
P.S. Модераторы: не бейте меня, я хороший.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 декабря 2008 20:50
· Личное сообщение · #15

progopis
Да, запостил хрень откровенную, но ссыль на мсдн привела куда нужно, так что надо отдать ему должное - Vovan666 молодец

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 27 декабря 2008 00:09
· Личное сообщение · #16

ARCHANGEL пишет:
borov
а почему не убрать бы minimize из шапки окна вообще?

Нужно чтобы была, для наглядности(это для новой софтины, если приложу усилий, то в январе я думаю вы сможете её увидеть)

-----
Лучше быть одиноким, но свободным © $me




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 27 декабря 2008 16:13
· Личное сообщение · #17

progopis пишет:
Мда... Читать креклаб не научился. Зато каждый 2-ой "советчик" в гугл и мсдн посылает

Гы, а ты уверен что он именно про это сообщение писал
progopis пишет:
Ну так вот, читаем:
The WM_COMPACTING

По мне так это просто пример кода, показывающий как обрабатывать приходящее сообщение, где он предлагал в место
Vovan666 пишет:
блаблабла

написать свой код, а
Vovan666 пишет:
.ELSEIF uMsg == WM_COMPACTING

Это просто копипаст из первого попавшегося под руку исходника на MASM
Думаю надобыло после постенга Вована и закрыть нах тему
И я не думаю что тут найдеццо народу столько вместе взятых, чтобы отломать столько прожек, сколько отломал Вован ;)(не говоря уже о некоторых мемберах в тимах, которых интелек под большим подозрением %))) ;)
ЗЫ: он просто не любит на флейм отписываться ;))
И иногда бывает полезным стоя прочитать несколько раз, то что на лабе пишут %))

По-сабжу на будущее если никак не асилить как правильно задать вопрос гуглю ;)
Есть такая прожка Spy++, так вот ее можно повесить на окно или на дочернее окно(если нужен субклассинг) - выполнить нужное действие(свернуть окно) и посмотреть какие мессаги приходили(там есть фильтр, если че для приходящих сообщений)
<00033> 00180484 R WM_WINDOWPOSCHANGING
<00034> 00180484 S WM_WINDOWPOSCHANGED lpwp:0012FA48
<00035> 00180484 S WM_MOVE xPos:33536 yPos:33536
<00036> 00180484 R WM_MOVE
<00037> 00180484 S WM_SIZE fwSizeType:SIZE_MINIMIZED nWidth:0 nHeight:0
<00038> 00180484 R WM_SIZE

<00039> 00180484 S WM_WINDOWPOSCHANGING lpwp:0012F6A8
<00040> 00180484 R WM_WINDOWPOSCHANGING
<00041> 00180484 S WM_WINDOWPOSCHANGED lpwp:0012F6A8
<00042> 00180484 R WM_WINDOWPOSCHANGED
<00043> 00180484 R WM_WINDOWPOSCHANGED
<00044> 00180484 S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:True hwndPreviousnull)
<00045> 00180484 R WM_ACTIVATE
И всегда эти мессаги можно скинуть в лог короче.. банальный RTFM, бгг
и в MSDN сразу смотрим для чего они нах нужны
там кстати через свойства можно посмотреть значения параметров которые вместе с мессагами приходили ;))

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 30 декабря 2008 15:09
· Личное сообщение · #18

Demon666
За совет спасибо, я учту. А про остальное - чтоб повыражаться, у тебя свой блог есть, вот и вперёд.

Вот сейчас созрел ещё один вопрос, дело в том, что хочу отобразить иконку, которая до этого отображалась в верхнем левом углу главного окна приложения, в System Tray, всё, вроде бы, получается, но только в трее не иконка, а пустое место, которое, тем не менее, отображает верный szTip и реагирует на сообщения. Как там отобразить иконку, вместо пустого места?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 30 декабря 2008 16:16
· Личное сообщение · #19



eab3_30.12.2008_CRACKLAB.rU.tgz - trayicon.zip

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 30 декабря 2008 16:28
· Личное сообщение · #20

mak
Спасибо, как бы я без тебя кодил бы? Вот только странно, когда добавил в ресурсы ещё одну иконку и вызвал LoadIcon вначале обработки сообщения WM_INITDIALOG - иконка стала отображаться, а когда переместил код на пару строчек вниз - перестала, т.к. LoadIcon стала возвращать ошибку. Как так?

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› Обработка сыбытия при сворачивании окна на MASM
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати