PaintPicture fait plus de choses que StrecthBlt (et donc Paintpicture est plus lent).
PaintPicture paint une image qui peut se trouver en mémoire ou dans un fichier (.bmp, .wmf, .emf, .cur, .ico, or .dib), alors que Stretchblt ne fait que copier des bitmaps qui se trouvent en mémoire.
PaintPicture fait les conversions nécessaires lorsque les unités sélectionnées dans les "display context" sont différentes de celles des objets. Stretchblt ne fait pas ces conversions (en pratique, on a très souvent du MM_TEXT du côté source et du côté destination, auquel cas il n'y a pas de conversion à faire).