He will eat when he is hungry. I have a 2 yr old(almost 3) and a 5 year old and they do the same thing. They won't eat supper sometimes or lunch. A child is not going to starve theirselves. You do need to quit offering McDonald's just because he tells you he is not hungry. He will catch onto this and soon will refuse all healthy food because he knows you will give him junk. Whatever you all are eating set it on the table if he eats good if he don't no big deal. He eats it or he don't eat anything else. Offer a healthy snack later. If he don't want it fine, let it go. By the end of the day at supper he will be ready to eat. If mine don't eat atleast half of their food they don't get dessert or candy and they know it so they don't ask for it. We don't eat out alot though and they have always ate vegetables. Now there are certain things they don't like like chile, veggie soup, so if I do fix that for myself I will make something else for them like take the meat and make hamburger patties for them and a vegetable. They also make juice boxes that have servings of veggies in it works great for lunch when they just want a sandwich.
moms often want their children to eat more and children do go through this phase of being 'picky' ,best thing is not to make an issue of it as it may be getting him attention he wants , focus on his positive side and praise him when you see him doing something right.Get his Dad playing sports with him , ball games and having fun so he feels important aswell as his little brother.