When creating the tabs, you will notice that I fill in the structure fields that are needed for the first tab, then for the second tab, only change
the displayed string for the second tab. You do not have to fill all the structure fields for each tab since the structure keeps the info between SendMessage Calls.

WhichTabChosen will be how we keep track of.... take a guess.... Which tab was chosen. I NEVER create variable names like a, b, etc... Make your variable names descriptive so you know
exactly what it is for.

When your main window is displayed, the last tab window created will be the one visible, so I just hide it.

We will only handle the TCH_SELCHANGE message in this example, but WM_NOTIFY is where you can prevent a tab from changing, check which tab the user is leaving etc.
TabHandles is a structure to hold our tab handles to make it easier to change...

line 7 - 8 we get the handle from our struct of the tab that HAD the selction and hide it

line 9 - 12 we get the index of the selected tab, get its handle from our struct and show it.