Przyjmij, ze nie ma czegoś takiego jak "rysowanie png", czy jakiegokolwiek formatu. W momencie jak wczytasz png/jpg/cokolwiek masz bitmapę (co nie oznacza ".bmp" a "nieskompresowane dane najczęściej w formie tablicy"), a to możesz albo narysować sobie sam (via GDI) albo używając ::CreateDIBSection() zrobić z tego HBITMAP (powiedzmy w PARGB32) i wtedy masz całą masę funkcji do zabawy;