It's not CWinApp that's special, the "specialness" is at a lower level. When a process starts its initial thread calls WinMain[^]. This thread can create as many threads as it likes and they in turn can do the same, but as soon as the the initial thread exits the process is history. MFC is built on top of Windows, and the initial thread is the one that's generally going to be executing CWinApp's methods. So yes, a process does need at least one thread to be executing: the initial one.
I am a college student, looking to participate in an open source project. The only experience I have is class work, and I want to start participating in "real world" programming. I was wondering if anyone could point me in the right direction to find a project I might be able to help with. Thank you for any advice you can give.