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

📄 facebrowse.cpp

📁 个人计算机定时自动执行软件,是 一个值得看看的程序。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// FaceBrowse.cpp : implementation file
//

#include "stdafx.h"
#include "clock.h"
#include "FaceBrowse.h"
#include "clockDlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFaceBrowse dialog
//#include<wininet.h>
//#pragma comment(lib,"wininet.lib")


CFaceBrowse::CFaceBrowse(CWnd* pParent /*=NULL*/)
	: CDialog(CFaceBrowse::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFaceBrowse)
	m_autorun = FALSE;
	m_minstartup = FALSE;
	m_forntall = FALSE;
	m_timetype = -1;
	m_autotimetype = FALSE;
	m_autoface = FALSE;
	m_face = -1;
	//}}AFX_DATA_INIT

//	m_mainWnd=NULL;

}


void CFaceBrowse::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFaceBrowse)
	DDX_Control(pDX, IDC_FACE_TIMETYPEBITMAP, m_timetypebitmap);
	DDX_Control(pDX, IDC_FACE_CLARITY, m_sld);
	DDX_Control(pDX, IDC_FACE_SHOWBITMAP, m_ctrlbitmap);
	DDX_Check(pDX, IDC_FACE_AUTORUN, m_autorun);
	DDX_Check(pDX, IDC_FACE_MINSTARTUP, m_minstartup);
	DDX_Check(pDX, IDC_FACE_FORNTALL, m_forntall);
	DDX_CBIndex(pDX, IDC_FACE_TIMETYPE, m_timetype);
	DDX_Check(pDX, IDC_FACE_AUTOCHANGETIMETYPE, m_autotimetype);
	DDX_Check(pDX, IDC_FACE_AUTOCHANGEFACE, m_autoface);
	DDX_CBIndex(pDX, IDC_FACE_BITMAP, m_face);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFaceBrowse, CDialog)
	//{{AFX_MSG_MAP(CFaceBrowse)
	ON_BN_CLICKED(IDC_FACE_AUTORUN, OnFaceAutorun)
	ON_BN_CLICKED(IDC_FACE_FORNTALL, OnFaceForntall)
	ON_BN_CLICKED(IDC_FACE_MINSTARTUP, OnFaceMinstartup)
	ON_CBN_SELCHANGE(IDC_FACE_BITMAP, OnSelchangeFaceBitmap)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_FACE_CLARITY, OnReleasedcaptureFaceClarity)
	ON_WM_HSCROLL()
	ON_WM_SHOWWINDOW()
	ON_CBN_SELCHANGE(IDC_FACE_TIMETYPE, OnSelchangeFaceTimetype)
	ON_BN_CLICKED(IDC_FACE_AUTOCHANGEFACE, OnFaceAutochangeface)
	ON_BN_CLICKED(IDC_FACE_AUTOCHANGETIMETYPE, OnFaceAutochangetimetype)
	ON_BN_CLICKED(IDC_APPLY, OnApply)
	ON_WM_PAINT()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFaceBrowse message handlers

BOOL CFaceBrowse::OnInitDialog() 
{
	CDialog::OnInitDialog();

	char files_path[512];
	GetModuleFileName(NULL,files_path,512);
	char *p = strrchr(files_path,'\\');
	p[1]='\0';
	strcat(files_path,"Settings.ini");
	m_autorun = GetPrivateProfileInt("Settings","m_autorun",0,files_path);
	m_forntall = GetPrivateProfileInt("Settings","m_alwayfront",1,files_path);
	m_minstartup = GetPrivateProfileInt("Settings","m_minstartup",0,files_path);

	m_autoface = GetPrivateProfileInt("Face","m_autoface",0,files_path);
	m_autotimetype = GetPrivateProfileInt("Face","m_autotimetype",0,files_path);

	//初始化时,将应用按钮变灰
	GetDlgItem(IDC_APPLY)->EnableWindow(false);
	

	
	
	
	
	/**********************************对话框透明**************************************/	
	CString str3;
	//判断操作系统是否为Win2000 WinXp
	OSVERSIONINFOEX os;
	::ZeroMemory(&os,sizeof(os));
	os.dwOSVersionInfoSize=sizeof(os);
	::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&os));

//	if(os.dwPlatformId==VER_PLATFORM_WIN32_NT && os.dwMajorVersion >=5) //win2000以上的版本	
//		return "Win2000";  
//	if(os.dwPlatformId ==VER_PLATFORM_WIN32_WINDOWS)
//		return "Win9x";
//	else
//		return "Other";	

	if( os.dwPlatformId==VER_PLATFORM_WIN32_NT && os.dwMajorVersion >=5 ) //保证在Win2000 WinXp中才调用
	{		
		m_sld.SetRange(28,255);
		m_sld.SetPos(::GetPrivateProfileInt("Settings","nTrans",218,files_path));
		str3.Format("窗体的透明度:%%%d",100 * m_sld.GetPos() / 255);
		SetDlgItemText(IDC_FACE_SLIDERSTATIC,str3);
	}
	else  	
	{
		str3="该系统不支持窗体透明";
		SetDlgItemText(IDC_FACE_SLIDERSTATIC,str3);
		GetDlgItem(IDC_FACE_CLARITY)->EnableWindow(false);
	}

	/************************************************************************/

	m_face = GetPrivateProfileInt("Face","m_face",0,files_path);
	m_keepfacenumber = m_face;
	HANDLE  hBitmap;
	switch(m_face)
	{
		case 0:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT1),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 1:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT2),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 2:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT3),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 3:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT4),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 4:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT5),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 5:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT6),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 6:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT7),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 7:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT8),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 8:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT9),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;	
		case 9:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT10),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;	
		case 10:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT11),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;	
		case 11:			
			hBitmap=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BIT12),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;	
	}
	m_ctrlbitmap.SetBitmap((HBITMAP ) hBitmap);
//	l_hbmpBitmap = m_ctrlbitmap.GetBitmap();
	


	m_timetype = GetPrivateProfileInt("Face","m_timetype",0,files_path);
	m_keeptimenumber = m_timetype;
	HANDLE  htimetype;
	switch(m_timetype)//载入图标,MAKEINTRESOURCE宏将资源转为函数可用的参数
	{
		case 0:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT1),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 1:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT2),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 2:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT3),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 3:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT4),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 4:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT5),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 5:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT6),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 6:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT7),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
		case 7:			
			htimetype=::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_FONT8),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
			break;
	}
	m_timetypebitmap.SetBitmap((HBITMAP ) htimetype);	

	UpdateData(FALSE);	

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CFaceBrowse::OnFaceAutorun() 
{
	if(m_autorun)
	{
		m_autorun=0;
	}
	else
	{
		m_autorun=1;
	}

	GetDlgItem(IDC_APPLY)->EnableWindow();
}

void CFaceBrowse::OnFaceForntall() 
{
	if(m_forntall)
	{
		AfxGetMainWnd()->SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
		m_forntall=0;
	}
	else
	{
		AfxGetMainWnd()->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
		m_forntall=1;
	}
	GetDlgItem(IDC_APPLY)->EnableWindow();
}

void CFaceBrowse::OnFaceMinstartup() 
{
	if(m_minstartup)
	{
		m_minstartup=0;
	}
	else
	{
		m_minstartup=1;
	}
	GetDlgItem(IDC_APPLY)->EnableWindow();
}

/////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////透明度滑板/////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
void CFaceBrowse::OnReleasedcaptureFaceClarity(NMHDR* pNMHDR, LRESULT* pResult) 
{
	BYTE pos=(BYTE)m_sld.GetPos();// get slider current position
	HINSTANCE hInst = LoadLibrary("User32.DLL"); 
	if(hInst) 
	{            
		typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);          
		MYFUNC fun = NULL;
	
		//取得SetLayeredWindowAttributes函数指针
		fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");   
		if(fun)
			fun(AfxGetMainWnd()->GetSafeHwnd(),0,pos,2);  
		
		FreeLibrary(hInst); 
	};	

	CString str;
	str.Format("窗体的透明度:%%%d",100 * pos / 255);
	SetDlgItemText(IDC_FACE_SLIDERSTATIC,str);		
	*pResult = 0;


	char files_path[512];
	GetModuleFileName(NULL,files_path,512);
	char *p = strrchr(files_path,'\\');
	p[1]='\0';
	strcat(files_path,"Settings.ini");
	
	CString str2;
	str2.Format("%d",pos);
	::WritePrivateProfileString("Settings","nTrans",str2,files_path);
	GetDlgItem(IDC_APPLY)->EnableWindow();
}


void CFaceBrowse::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	BYTE pos=(BYTE)m_sld.GetPos();
	
	HINSTANCE hInst = LoadLibrary("User32.DLL"); 
	if(hInst) 
	{            
		typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);          
		MYFUNC fun = NULL;
		fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes"); //取得SetLayeredWindowAttributes函数指针  
		if(fun)
			fun(AfxGetMainWnd()->GetSafeHwnd(),0,pos,2);  
		
		FreeLibrary(hInst); 
	};	

	CString str;
	str.Format("窗体的透明度:%%%d",100 * pos / 255);
	SetDlgItemText(IDC_FACE_SLIDERSTATIC,str);
	
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////

void CFaceBrowse::OnShowWindow(BOOL bShow, UINT nStatus) //初始化时将窗口定在显示器的当中位置
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	CRect rect;

⌨️ 快捷键说明

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