почему OnMsg(UINT, WPARAM, LPARAM, BOOL&)
От: Аноним  
Дата: 26.02.09 21:15
Оценка:
для какой цели в сигнатуре функций, подставляемых в макрос MESSAGE_HANDLER, присутствует параметр UINT uMsg? зачем он нужен? ведь создавая обработчик мы явно указываем идентификатор сообщения. единственное применение этой сигнатуры я вижу таким:
BEGIN_MSG_MAP(widget)
    MESSAGE_HANDLER(WM_ERASEBKGND, OnPaint)
    MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()
LRESULT                OnPaint(UINT uMsg, WPARAM, LPARAM, BOOL&)
{
    if(uMsg == WM_ERASEBKGND)
    {
        // TO DO
    }
    else if(uMsg == WM_PAINT)
    {
        // TO DO
    }
    return TRUE;
}
но логично ли оно, такое применение? в нем мы делаем двойную проверку if(uMsg == WM_XXX), сначала внутри макроса, а затем внутри обработчика.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.