If all you want is drawing a background picture on your window (without animation and any movement) behind the controls on your window then you should draw from the message WM_PAINT handler of your main window. Inside your WM_PAINT you should use the
BeginPaint()[
^] and
EndPaint()[
^] functions. You can find a code example for the WM_PAINT handler in the documentation of the BeginPaint() function I linked.
BeginPaint()
returns a HDC for you to draw on. To avoid overdrawing the child controls of your window you should create your main window with WS_CLIPCHILDREN style. When this style is set your BeginPaint() returns a HDC on which the validatable region excludes the area occupied by child controls so your drawing should not overdraw them.