Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отловить нажатие на кнопку ?? 
V
    Опции темы
ANTON_AL
Дата 23.1.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 27.1.2007

Репутация: нет
Всего: нет



Доброго дня!


Что то нифига не врублюсь - как мне обработать нажатие на кнопку.

Есть класс CMainWnd, который представляет главное окно приложения. В окне находится диалог IDD_TOOL_JPEG, на котором расположены кнопки, переключатели и т.д.
Код


///----------------------------------------------------------------------------
///@brief
///    Main window of the application
///
/////
class CMainWnd : public CFrameWnd
{
    //Construction/destruction
    public:
        CMainWnd( );
        ~CMainWnd( );


    //Message handlers
    public:
        //overrided methods from CWnd class
        BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
        int OnCreate( LPCREATESTRUCT lpCreateStruct );
                
    

    //Members
    private:
        CDialog        *m_pToolsDialog;
        
        DECLARE_MESSAGE_MAP( );
};



Реализация:
Код


//Message map
BEGIN_MESSAGE_MAP( CMainWnd, CFrameWnd )
    ON_WM_CREATE( )    
    ON_WM_PAINT( )    
    
END_MESSAGE_MAP( )






///----------------------------------------------------------------------------
///@brief
///    Constructor
///
/////
CMainWnd::CMainWnd( )
{
    //Init members
    {
        m_pToolsDialog = NULL;
    }

    //Create this window, using parent - method
    CFrameWnd::Create( NULL, _T("Demo Application"), WS_OVERLAPPEDWINDOW, CFrameWnd::rectDefault, NULL, NULL );
}
    

///----------------------------------------------------------------------------
///@brief
///    Destructor
///
/////
CMainWnd::~CMainWnd( )
{
    SAFE_DELETE( m_pToolsDialog );
}






///----------------------------------------------------------------------------
///@brief
///    This method will be called, if window will be created
///
/////
int CMainWnd::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
    //Init Tool dialog
    {
        m_pToolsDialog = new CDialog( );
        int result = m_pToolsDialog->Create(IDD_TOOL_JPEG, this );
        if ( result == TRUE )
        {
            m_pToolsDialog->ShowWindow( SW_SHOW );
        }
    }

    //No errors
    return FALSE;
}


BOOL CMainWnd::OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult )
{
    CWnd::OnNotify( wParam, lParam, pResult );


    //which control sends the message
    switch( wParam )
    {
        case IDC_BUTTON_OPEN:
            if ( BN_CLICKED == lParam )
            {
                this->MessageBox( _T("lkjlsdkjf") );
            }
    }

    return FALSE;
}



При нажатии на кнопку, даже не вызывается метод CMainWnd::OnNotify . . . Пробовал также использовать метод OnCommand, тоже дохлый номер. Также пробовал создавать свой класс, производный от CDialog, та же история. . .

Пробовал также добавлять в карту сообщений вот это:
Код

ON_BN_CLICKED( IDC_BUTTON_OPEN, myOnButtonClick )

. . . и тоже, как об стенку горох - метод myOnButtonClick() не вызывается.


Можно примерчик, а то уже запарился smile 


Это сообщение отредактировал(а) ANTON_AL - 23.1.2008, 20:36
PM MAIL   Вверх
Earnest
Дата 23.1.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(ANTON_AL @  23.1.2008,  21:26 Найти цитируемый пост)
При нажатии на кнопку, даже не вызывается метод CMainWnd::OnNotify .

А чего ты взял, что при нажатии на кнопку! диалога! будет вызываться CMainWnd::OnNotify ? Кнопка посылает уведомление только своему родителю, причем вовсе не WM_NOTIFY, а WM_COMMAND.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.