Let $\mathfrak{g}$ denote a complex semisimple Lie algebra. Fix a Cartan subalgebra $\mathfrak{h}$ of $\mathfrak{g}$. Let $B(-,-)$ denote minus the Killing form on $\mathfrak{g}$ restricted to $\mathfrak{h}$. Let $\mathfrak{h}_0$ be the real span of the coroots of $\mathfrak{g}$ with respect to $B$. Note that $B(-,-)$ is positive definite on $\mathfrak{h}_0$. Choose a set $R_+ \subset \mathfrak{h}^*_0$ of positive roots of $\mathfrak{g}$.
Let $\lambda \in \mathfrak{h}^*_0$ be a dominant algebraically integral weight. Let $V$ be the corresponding finite-dimensional irreducible representation of $\mathfrak{g}$ corresponding to $\lambda$, which exists and is unique, up to isomorphism, by the highest weight theorem (please correct me if I am writing something wrong).
How can one find all weights of $V$ together with their multiplicities? There are some things that help of course. Given any $g \in W$, $g.\lambda$ is also a weight, with the same multiplicity as $\lambda$. By the way, does $\lambda$ always have multiplicity $1$? The difference between $2$ weights is an integral linear combination of roots.
So I am guessing that after forms the orbit $W.\lambda$, then one "fills" in the weights that are in the convex hull of $W.\lambda$ making sure that the difference between any two of the weights is an integral linear combination of the roots. Is this approach correct?
What about the multiplicities of each weight? I know that one can use Weyl's character formula for instance, but is there perhaps a more direct way?