WP_Query
defaults to getting posts, not pages.
From the above reference page:
Display content based on post and page parameters. Remember that default
post_type
is only set to display posts but not pages.
This code:
// WP_Query arguments
$args = array(
'post_parent' => '4117',
'post_type' => 'page',
'posts_per_page' => '1',
'order' => 'DESC',
'orderby' => 'menu_order',
);
// The Query
$query = new WP_Query( $args );
$posts = $query->posts;
foreach ( $posts as $post ) {
echo $post->post_title;
}
…should do what you want.