Back in the day (I was a junior dev) this was easier than grappling with React hooks today:
BOOL CMainDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_pPropertySheet = new CMyPropertySheet(_T("My Tabbed Dialog"), this);
m_pPropertySheet->Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT);
CRect rectMainDialog;
GetClientRect(&rectMainDialog);
CRect rectPropertySheet(10, 10, rectMainDialog.Width() - 20, rectMainDialog.Height() - 20);
m_pPropertySheet->MoveWindow(rectPropertySheet);
return TRUE;
}
This, IMO, is exactly why they are dying. They are more expensive than regular cars and the only reason anyone likes them is because they are loud and obnoxious.
There's just fewer and fewer people that need a loud noise maker to be happy, certainly not when that noise maker will cost you $60k you likely don't have since inflation has gone crazy while salaries have stagnated.
The people that do end up gravitating to the noise makers will choose a loud motorcycle instead.
Also, the loud sound != big. V8 != Loud, esp when many v6 motors are close in displacement to Ford's 5 liter V8.