для какой цели в сигнатуре функций, подставляемых в макрос 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), сначала внутри макроса, а затем внутри обработчика.