winapi BN_CLICKED cómo identificar qué botón se hizo clic?

Estoy creando un programa win32 simple usando c ++, aunque creo que solo estoy usando c en esta aplicación. Necesito determinar qué botón HWND se presionó en la aplicación. Busqué en la referencia msdn y solo me dijo que HIWORD es el código de notificación y LOWORD es el identificador del mensaje BN_CLICKED. Me las arreglé para llegar a determinar cuándo se hace clic en un botón, pero solo se aplica a todos los botones. Todos mis botones se crean en el mensaje WM_CREATE. Esto es lo que logré batir hasta ahora:

case: WM_CREATE:
    HWND hPlus = CreateWindowEx( 0, L"BUTTON", L"+", WS_CHILD | WS_VISIBLE, 130, 240, 35, 30, hwnd, ( HMENU )IDC_MENU, GetModuleHandle( NULL ), NULL );
    HWND hEquals = CreateWindowEx( 0, L"BUTTON", L"=", WS_CHILD | WS_VISIBLE, 170, 205, 65, 65, hwnd, ( HMENU )IDC_MENU, GetModuleHandle( NULL ), NULL );
break;

case WM_COMMAND:
    switch( HIWORD( wParam ) )
    {
        case BN_CLICKED:
            MessageBox( hwnd, L"OK", "OK", MB_OK );
            break;
    }
    break;

He intentado comparar hEquals con LOWORD (wParam) pero eso me dio un error al compilar. Creo que también traté de compararlo con HIWORD y LOWORD de lParam, que tampoco compilaron. Ahora no tengo ni idea de qué hacer a continuación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta