Как заблокировать WM_CHAR из WM_KEYDOWN?
От: Аноним  
Дата: 13.07.09 10:00
Оценка:
этот код не помогает...
LRESULT OnKeyDown( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
    if(wParam == 8)
        bHandled = TRUE;
    return TRUE;
}
Re: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: любой  
Дата: 13.07.09 10:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>этот код не помогает...

А>
А>LRESULT OnKeyDown( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
А>{
А>    if(wParam == 8)
А>        bHandled = TRUE;
А>    return TRUE;
А>}
А>


WM_CHAR из TranslateMessage в цикле обработки сообщений вылезает
художников никогда не обижал
Re[2]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: Аноним  
Дата: 13.07.09 10:23
Оценка:
Здравствуйте, любой, Вы писали:

Л>WM_CHAR из TranslateMessage в цикле обработки сообщений вылезает

речь идет об этом?
BOOL PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_CHAR && wParam == 8)
        return TRUE;
    return FALSE;
}
Re[2]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: любой  
Дата: 13.07.09 10:25
Оценка:
А из OnKeyDown соответствующий WM_CHAR можно PeekMessage'м из очереди вытянуть и выбросить.
художников никогда не обижал
Re[3]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: Аноним  
Дата: 13.07.09 10:34
Оценка:
кстати, какова функциональная нагрузка на ::TranslateMessage(&m_msg), ::DispatchMessage(&m_msg) и OnIdle()?
Re[4]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: любой  
Дата: 13.07.09 10:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>кстати, какова функциональная нагрузка на ::TranslateMessage(&m_msg), ::DispatchMessage(&m_msg) и OnIdle()?


TranslateMessage по-моему только WM_CHAR'ы и генерит

DispatchMessage процедуру сообщений окна вызывает

Ну а OnIdle даёт возможность когда сообщений винды нет чего-нибудь поделать
художников никогда не обижал
Re[3]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: Аноним  
Дата: 13.07.09 10:49
Оценка:
Здравствуйте, любой, Вы писали:

Л>А из OnKeyDown соответствующий WM_CHAR можно PeekMessage'м из очереди вытянуть и выбросить.

можно более развернутый ответ?
MSG    msg;
while(::PeekMessage(&msg, hWnd, 0, 0, PM_NOREMOVE))
{
    if(msg.message == WM_CHAR)
        //::GetMessage() ???????
}
Re[4]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: любой  
Дата: 13.07.09 10:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, любой, Вы писали:


Л>>А из OnKeyDown соответствующий WM_CHAR можно PeekMessage'м из очереди вытянуть и выбросить.

А>можно более развернутый ответ?
А>
А>MSG    msg;
А>while(::PeekMessage(&msg, hWnd, 0, 0, PM_NOREMOVE))
А>{
А>    if(msg.message == WM_CHAR)
А>        //::GetMessage() ???????
А>}
А>


Так, наверное, можно:

while(::PeekMessage(&msg, hWnd, WM_CHAR, WM_CHAR, PM_REMOVE);
художников никогда не обижал
Re[5]: Как заблокировать WM_CHAR из WM_KEYDOWN?
От: Аноним  
Дата: 13.07.09 11:01
Оценка:
Здравствуйте, любой, Вы писали:

Л>TranslateMessage по-моему только WM_CHAR'ы и генерит

Л>DispatchMessage процедуру сообщений окна вызывает
Л>Ну а OnIdle даёт возможность когда сообщений винды нет чего-нибудь поделать
спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.