I have lived on and off in Brussels for quite a few years. All pupils in the region do study both French and Flemish at school so they know both languages, something else is whether they have a good command of both or whether they wish to use them both. Older people and/or 'migrants' from other parts of Belgium that's a different matter of course. Yet it's unfair to simplify so much the issue, (almost) nobody gets offended if you use one language or the other, they'll simply say whether they do understand you or not (be really so or not) and then you can switch to a different language if you still want to communicate with that person. Also note that Brussels, being the capital of the EU, has a very large community of expats from elsewhere in Europe, so in many circles, English is the de-facto language for communication.
As per Catalonia, everybody who's been schoolarised in the region as a child since 1975, be local or migrant from Spain or elsewhere, does understand Catalan and is able to speak it... otherwise he/she would not have graduated high school as the vehicular language is Catalan. And that's the majority of the locals. Again, something else is whether some of them do use it regularly, whether they do have a good command of it or whether they prefer to speak Spanish instead. As a rule of thumb, families whose origins are from Spain or South America tend to use Spanish as mothertongue, yet, as said, it's not a written on stone as there are plenty of factors that might alter that (first generation vs second generation, social environment, etc). Yet we don't have a problem with language in Catalonia, it's quite normal, and nobody makes any fuss out of it, that within a group conversation some people will speak Catalan and others will Spanish without even noticing these are different languages. The name of the game is called 'respect', if your mothertongue (or simply you feel more comfortable) speaking in one language, since we all have the right and duty to know both (as per what I mentioned earlier), why do I have to make you speak something else? Same goes for me, if I'm more comfortable answering you in my tongue, since you have the right and duty to understand it, why should I switch to the other one?
What better example for showing this that a recent election of a president for the Catalan government who was originally born in Córdoba, moved to Catalonia and now it's 'another' Catalan who speaks both Spanish and Catalan: José Montilla was the 128th president of the Generalitat de Catalunya. The so-called 'problem' is often fictitiously introduced by Spanish politicians in Madrid who don't have a clue on how Catalan society functions and that have an agenda on re-centralizing power.
As per expats and migrants who are no longer in school age, well, as everywhere else it's a result of your environment. If you're living in a city suburb where many are also foreigners or migrants from elsewhere you're less likely to learn Catalan than if you live in a different district or a smaller rural town. But again, the same can be said for English in London or New York... how many Londoners don't know people living in London who barely speak any English?