Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > WinAPI
Перезагрузить страницу Как отловить клик на заголовке
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию Как отловить клик на заголовке - 26.04.2006, 03:42

Сабж...

Требуется обработать клик мыши на заголовке окна, созданного с помощью ресурсов

Честно говоря, даже не знаю как подступиться...




мне бы только маааленький намек)))

MSDN уже штудировал...
Ответить с цитированием
  (#2 (permalink)) Старый
kelz kelz вне форума
Member
 
Сообщений: 511
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.05.2004
По умолчанию 26.04.2006, 09:19

А что WM_NCLBUTTONDOWN или WM_NCHITTEST не помогает?
Ответить с цитированием
  (#3 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 26.04.2006, 21:07

В том то и дело, что не очень работает...

Я не зря акцентировал внимание, на том, что окно - диалоговое, создано с помощью ресурсов...

Там другие команды, например (из тех, что я знаю), вместо WM_CHAR - WM_GETDLGCODE... WM_CHAR работать не хочет... и т.д.
Ответить с цитированием
  (#4 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 26.04.2006, 21:14

поставить локальынй хуук на мышку или на сообщения.
Ответить с цитированием
  (#5 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 27.04.2006, 03:17

Спасибо большое:

во первых, разобрался, что такое HOOK процедуры(полезная вещь я как новичок про них и не знал )

во вторых написал саму функцию, вроде реагирует на "мышиные" сообщения.
Код:
RESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
    
    switch(nCode)
    {
    
    case HC_ACTION:
                       xPos = GET_X_LPARAM(lParam); 
                       yPos = GET_Y_LPARAM(lParam); 
  
    //что то делаем;
    
    break;
    
    default: CallNextHookEx(NULL,nCode,wParam,lParam);
    break;
    }
    
    return 0;
};
Штудируя MSDN нашел переменную HTCAPTION, определяющую, что курсор находится в области заголовка окна. Переменную можно получить через WM_NCHITTEST, но я никак не пойму как это сделать...

подскажите пожалуйста... или намекните для верного направления мышления
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 28.04.2006, 20:13

Елки-палки, все эти WM_LBUTTONDOWN и прочие сообщения кликов генерятся, только когда курсор находится в клиентско
Ответить с цитированием
  (#7 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 28.04.2006, 20:55

Все, победил проблему , на идеальный вариант решения не претендую



Код:
// caption.cpp



.
.
.
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)    //Моя HOOK процедура обработки сообщения от мышки
{
    
    
    switch(nCode)
    {

    case HC_ACTION:
    
      if (wParam==WM_NCLBUTTONDBLCLK)          //Использую WM_NCLBUTTONDBLCLK, так как заголовок не относится к клиентской области
  
      {
      
      
    
      
      
        if (flag_switch)        //Какой заголовок?
        
        {
      SetWindowText(hDialog, patient._family_n_p);//Изменить заголовок
      flag_switch=false;    
        }
        else 
        {
      SetWindowText(hDialog, patient._family_name_patronymic);
      flag_switch=true;    
        }
    
      
    }
    return CallNextHookEx(NULL,nCode,wParam,lParam);    //Возращаем управление другим процедурам
    break;
    
    default: return CallNextHookEx(NULL,nCode,wParam,lParam);
    break;
    }
    
    return 0;
};
Ура
Ответить с цитированием
  (#8 (permalink)) Старый
Kite Kite вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 28.04.2006, 22:58

Цитата:
А что WM_NCLBUTTONDOWN или WM_NCHITTEST не помогает?

kelz я просто невнимательно прочитал твой ответ спасибо
Ответить с цитированием
  (#9 (permalink)) Старый
Vedrus Vedrus вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.06.2006
По умолчанию 10.06.2006, 16:35

Советую сильно не злоупотреблять хуками. Они сильно замедляют работу программы
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить текст в заголовке окна программы Natka Visual Basic 17 05.04.2012 11:56
Дабл клик на поле Nenado Delphi 1 04.03.2012 21:12
Изменение шрифта в заголовке главного окна vlad1 C++ Builder 0 06.04.2011 21:50
Обработать клик по picture control на С++ free_ex Вопросы начинающих программистов 1 25.02.2011 17:44
Как узнать размер mp3 файла, исходя из данных, записаных в его заголовке AZzz C++ Builder 0 07.04.2008 02:17
Вертикальный текст в заголовке ListView Pr0phet .NET 5 11.01.2008 03:33
Как можно определить, что на заголовке формы нажата кнопка мыши vikaz C++ Builder 5 05.05.2006 04:02
Как отловить клик мыши Devill C++ Builder 3 07.01.2006 13:32
Как поймать клик на заголовок CListCtrl Vladimir the Red Sunny Visual C++ 7 01.02.2005 12:59
Как в ToolBar при его Float в заголовке убрать кнопку Выход Anonymous Visual C++ 0 04.02.2004 22:54
Как в заголовке колонки сделать стрелочку вверх и вниз Anonymous Delphi 1 17.07.2003 15:53
Картинка в заголовке страницы Anonymous DHTML, JavaScript, VBScript 2 06.09.2002 22:15



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов