Es un comportamiento propio de Windows, ya que con las ventanas usa pixeles, pero con los diálogos usa "unidades base de diálogo" que calcula en base a GetDialogBaseUnits().
Si revisas la documentación de GetDialogBaseUnits() encontrarás una explicación de como calcular, más ó menos, de unas a otras.