Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ПРАВИЛЬНЫЙ обработчик минимизации максимизации


Автор: shutnik 19.5.2006, 19:52
как перехватить кнопки минимизации и максимизации окна приложения так, чтобы при их обработке, если внутренний флаг функции равен 0, окно на самом деле не сворачивалось, а, например, выскакивал месадж!
пробовал компонент TApplicationEvents - неподходит, к тому же обработчика максимизации в нём нету ("хотя он наверно обрабатываеся в onmessage ...",-мысли вслух.) =( 

Автор: shutnik 20.5.2006, 23:56
ну неужели никак нельзя? 

Автор: _hunter 22.5.2006, 11:36
Цитата(shutnik @  19.5.2006,  19:52 Найти цитируемый пост)
пробовал компонент TApplicationEvents

как пробовал? 

Автор: chwind 23.5.2006, 08:47
компонент TApplicationEvents - неподходит smile
Код

void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
   if ((Msg.message==274)&&(m_flCanRestore))//Восстановить
    Msg.message=0;
   if ((Msg.message==161)&&(Msg.wParam==9)&&(m_flCanMaximize))//развернуть
    Msg.message=0;
   if ((Msg.message==161)&&(Msg.wParam==8)&&(m_flCanMinimize))//свернуть
     Msg.message=0;
   if ((Msg.message==161)&&(Msg.wParam==20)&&(m_flCanClose))//Закрыть
    Msg.message=0;
}

 

Автор: shutnik 23.5.2006, 10:25
chwind, увы, НЕподходит =)

[C++ Error] Form.cpp(368): E2451 Undefined symbol 'm_flCanRestore'
[C++ Error] Form.cpp(370): E2451 Undefined symbol 'm_flCanMaximize'
[C++ Error] Form.cpp(372): E2451 Undefined symbol 'm_flCanMinimize'
[C++ Error] Form.cpp(374): E2451 Undefined symbol 'm_flCanClose' 

Автор: _hunter 23.5.2006, 10:39
понятно что Undefined -- это самоклепные флаги. можеш на них забить 

Автор: chwind 23.5.2006, 11:09
Цитата(shutnik @  19.5.2006,  19:52 Найти цитируемый пост)
если внутренний флаг функции равен 0


[C++ Error] Form.cpp(368): E2451 Undefined symbol 'm_flCanRestore'
[C++ Error] Form.cpp(370): E2451 Undefined symbol 'm_flCanMaximize'
[C++ Error] Form.cpp(372): E2451 Undefined symbol 'm_flCanMinimize'
[C++ Error] Form.cpp(374): E2451 Undefined symbol 'm_flCanClose' 

Это как раз и есть эти внутренние флаги, обяви их в классе формы:

bool m_flCanRestore;
bool m_flCanMaximize;
bool m_flCanMinimize;
bool m_flCanClose;

и управляй, если нужно, например, запретить свертывание сделай гдето в программе m_flCanMinimize = true;
ну и т.д. по аналогии

З.Ы. Эх молодежь молодежь, все вам розжевать нужно 


  

Автор: shutnik 23.5.2006, 11:21
chwind, 
_hunter, 
в принципе я уже выкинул эти флаги ... но всё же меня кое что неустраивает: моё приложение начинает неадекватно себя вести и форма иногда *подвисает* 

Автор: chwind 23.5.2006, 12:43
как подвисает, в какие моменты, уверен что из-за моего кода? 

Автор: shutnik 26.5.2006, 08:51
chwind, паксиб, разобрался, всё OK! а как мне узнать коды происходящего события??? 

Автор: chwind 26.5.2006, 09:27
Цитата(shutnik @  26.5.2006,  08:51 Найти цитируемый пост)
а как мне узнать коды происходящего события???  

Ищи в хелпе, MSDN или поставь точку останова, провоцируй события и смотри какой у него код smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)