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

📄 bgwnd.cpp

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

//GUI窗体类
LPCTSTR g_szClassName = _T ("{83048FAE-7EF7-4ad9-9907-42F4D3EA43B3}");
const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(_T("TaskbarCreated"));
#define TIMERID_INITDALAY	123
CPluginSet	g_pluginmgr;

enum
{
	WM_TRAYMSG=(WM_APP+1243),
};


CBGWnd::CBGWnd()
{
}

CBGWnd::~CBGWnd()
{

}

void CBGWnd::Delete()
{
	_TRACE_FUNCTION_;
	SendMessage(m_hWnd,WM_CLOSE,0,0);
	CloseTipWnd();
	CloseSetDialog();
	g_pluginmgr.Delete();
	g_pluginmgr.AquireDataLock();
	g_pluginmgr.SavePersonalData();
	g_pluginmgr.ReleaseDataLock();
	CStandardPageWnd::Uninit();
	DllMon::Uninit();
}

BOOL CBGWnd::Init()
{
	_TRACE_FUNCTION_;

	WNDCLASSEX   wndclassex={0};
    wndclassex.cbSize        = sizeof(WNDCLASSEX);
    wndclassex.style         = CS_HREDRAW | CS_VREDRAW;
    wndclassex.lpfnWndProc   = WndProc;
    wndclassex.cbClsExtra    = 0;
    wndclassex.cbWndExtra    = 0;
    wndclassex.hInstance     = g_hInstance;
    wndclassex.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
    wndclassex.hCursor       = LoadCursor (NULL, IDC_ARROW);
    wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wndclassex.lpszMenuName  = NULL;
    wndclassex.lpszClassName = g_szClassName;
    wndclassex.hIconSm       = wndclassex.hIcon;
	
    if (!RegisterClassEx (&wndclassex))        return FALSE;
	m_hWnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, g_szClassName, 	_T(""),	WS_OVERLAPPEDWINDOW,
		-100, 	-100, 	2,	2, 	NULL, NULL, g_hInstance,this); 
	
    ShowWindow (m_hWnd, SW_HIDE);
	UpdateWindow(m_hWnd);

	DllMon::Init();
	g_pluginmgr.Init();
	CStandardPageWnd::Init();

	return m_hWnd!=NULL;
}

LRESULT CALLBACK CBGWnd::NotifyProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_CREATE:
		{
			SetTimer(hWnd,TIMERID_INITDALAY,60,NULL);
		}
		break;
	case WM_DESTROY:
		{
			CloseTipWnd();
			CloseSetDialog();
		}
	case WM_TIMER:
		{
			if (wParam==TIMERID_INITDALAY)
			{
				DWORD dwUin=0;
				dwUin=QQinterface::GetCurrentUin();
				if (dwUin)
				{//OK,可以初始化了
					KillTimer(hWnd,TIMERID_INITDALAY);

					TCHAR szPath[MAX_PATH]={0},szPath2[MAX_PATH]={0};
					DWORD dwLen=0;
					dwLen=GetTempPath(MAX_PATH,szPath);
					if (dwLen)
					{
// 						DbgPrint(_T("path:%s"),szPath);
						if (szPath[dwLen-1]=='\\') szPath[dwLen-1]=0;
// 						DbgPrint(_T("path2:%s"),szPath);
						ConfusedFileName::GetFileName(szPath,szPath2);

						DbgPrint(_T("用户数据文件:%s"),szPath2);
						g_pluginmgr.AquireDataLock();
						g_pluginmgr.LoadPersonalData(szPath2);
						g_pluginmgr.ReleaseDataLock();
						ShowTipWnd(m_hWnd);
					}
				}
			}
		}
		break;
	default:
		break;
	}
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

LRESULT CALLBACK CBGWnd::WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	CBGWnd * that=(CBGWnd*)GetWindowLongPtr(hWnd,GWLP_USERDATA);
	
	switch (uMsg)
	{
	case WM_CREATE:
		that=(CBGWnd*)(((LPCREATESTRUCT)lParam)->lpCreateParams);
		SetWindowLongPtr(hWnd,GWLP_USERDATA,(LONG_PTR)that);
		break;
	default:
		break;
	}
	if (NULL==that) return DefWindowProc(hWnd,uMsg,wParam,lParam);
	return that->NotifyProc(hWnd,uMsg,wParam,lParam);
}

⌨️ 快捷键说明

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