Do you have to register a Dialog Box?-Collection of common programming errors

So, I am a total beginner in any kind of Windows related programming. I have been playing around with the Windows API and came across a couple of examples on how to initialize create windows and such.

One example creates a regular window (I abbreviated some of the code):

    int WINAPI WinMain( [...] )
    {

    [...]

    // Windows Class setup
    wndClass.cbSize = sizeof( wndClass );
    wndClass.style  = CS_HREDRAW | CS_VREDRAW;
    [...]    

    // Register class
    RegisterClassEx( &wndClass );

    // Create window
    hWnd = CreateWindow( szAppName, "Win32 App",
                         WS_OVERLAPPEDWINDOW,
                         0, 0, 512, 384,
                         NULL, NULL, hInstance, NULL );
    [...]
    }

The second example creates a dialog box (no abbreviations except the WinMain arguments):

    int WINAPI WinMain( [...] )
    {
      // Create dialog box
      DialogBox(hInstance, 
                MAKEINTRESOURCE(IDD_MAIN_DLG), 
                NULL, 
                (DLGPROC)DialogProc);
    }

The second example does not contain any call to the register function. It just creates the DialogBox with its DialogProc process attached.

This works fine, but I am wondering if there is a benefit of registering the window class and then creating the dialog box (if this is at all possible).