示例#1
0
LRESULT BaseWindow::s_WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	BaseWindow* phost = (BaseWindow*)GetProp(hwnd, (LPTSTR)s_atomThisProperty);
	bool fHandled = false;
	LRESULT lres = 0;
	if (uMsg == WM_CREATE)
	{
		CREATESTRUCT* pcs = (CREATESTRUCT*)lParam;
		phost = (BaseWindow*)pcs->lpCreateParams;

		SetProp(hwnd, (LPTSTR)s_atomThisProperty, (HANDLE)phost);
	}

	if (phost)
	{
		fHandled = phost->WndProc(uMsg, wParam, lParam, &lres);
	}

	if (fHandled == false)
		lres = DefWindowProc(hwnd, uMsg, wParam, lParam);

	return lres;
}