⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basewnd.cpp

📁 QQ2009组件管理源码
💻 CPP
字号:
#include "stdafx.h"
#include "basewnd.h"
#include "userctrl.h"


CStandardPageWnd::CStandardPageWnd()
{

}

CStandardPageWnd::~CStandardPageWnd()
{

}

HHOOK CStandardPageWnd::m_hhk=NULL;

LRESULT CALLBACK CStandardPageWnd::GetMsgProc(int code,	WPARAM wParam,	LPARAM lParam)
{
	// 	MSG msg = { 0 };
	// 	while (::GetMessage(&msg, NULL, 0, 0))
	// 	{
	// 		if (!CPaintManagerUI::TranslateMessage(&msg))
	// 		{
	// 			::TranslateMessage(&msg);
	// 			::DispatchMessage(&msg);
	// 		}
	// 	}
	
	if(code>=HC_ACTION)
	{
//		DbgPrint(_T("钩子消息:%d"),((MSG*)lParam)->message);
		if (CPaintManagerUI::TranslateMessage((MSG*)lParam))
		{
			DbgPrint(_T("钩子消息2:%d"),((MSG*)lParam)->message);
			return 1;
		}
	}
	return CallNextHookEx(NULL,code,wParam,lParam);
}

void CStandardPageWnd::Init()
{
	m_hhk=SetWindowsHookEx(WH_GETMESSAGE,&CStandardPageWnd::GetMsgProc,NULL,GetCurrentThreadId());
	DbgPrint(_T("消息钩子号:%d"),m_hhk);
}

void CStandardPageWnd::Uninit()
{
	UnhookWindowsHookEx(m_hhk);
}

UINT CStandardPageWnd::GetClassStyle() const 
{ 
	return UI_CLASSSTYLE_CHILD; 
}

void CStandardPageWnd::OnFinalMessage(HWND hWnd)
{
	CWindowWnd::OnFinalMessage(hWnd);
}

LRESULT CStandardPageWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if( uMsg == WM_CREATE )
	{     
		m_pm.Init(m_hWnd);
		CControlUI* pRoot = OnCreateCtrlTree();
		if(pRoot)
		{
			m_pm.AttachDialog(pRoot);
			m_pm.AddNotifier(this);
		}
		
		SetIcon(IDI_ICON1);
		return 0;
	}
	LRESULT lRes = 0;
//	if(m_pm.PreMessageHandler(uMsg, wParam ,lParam ,lRes)) return lRes;
	if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;
	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}

void CStandardPageWnd::Notify(TNotifyUI& msg)
{

}

CControlUI* CStandardPageWnd::CreateControl(LPCTSTR pstrClass)
{
	CControlUI* pControl = NULL;
	SIZE_T cchLen = _tcslen(pstrClass);
	switch( cchLen )
	{
	case 14:
		if( _tcscmp(pstrClass, _T("TitleTextPanel")) == 0 ) pControl = new CTitleTextPanelUI;
		break;
	case 16:
		if( _tcscmp(pstrClass, _T("CaptionTextPanel")) == 0 ) pControl = new CCaptionTextPanelUI;
		break;
	default:
		break;
	}
	return pControl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -