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

📄 facebrowse.cpp

📁 个人计算机定时自动执行软件,是 一个值得看看的程序。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	GetWindowRect(&rect);
	SetWindowPos(NULL,250,200,rect.Width(),rect.Height(),0);
}

void CFaceBrowse::OnSelchangeFaceBitmap() //面板选择
{
	
	HANDLE  hBitmap;
	UpdateData(TRUE);
	switch(m_face)//载入图标,MAKEINTRESOURCE宏将资源转为函数可用的参数
	{
		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;
	}
	if(m_ctrlbitmap.GetBitmap()!=NULL)
		DeleteObject(m_ctrlbitmap.GetBitmap());

	m_ctrlbitmap.SetBitmap((HBITMAP ) hBitmap);
	CRect l_Client;
	l_Client.left=340;
	l_Client.bottom=260;
	l_Client.top=100;
	l_Client.right=500;

	InvalidateRect(&l_Client,TRUE);//只重画图形显示所在区域

	GetDlgItem(IDC_APPLY)->EnableWindow();
}
void CFaceBrowse::OnSelchangeFaceTimetype() //时间字体选择
{
	HANDLE  htimetype;
	UpdateData(TRUE);
	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;
	}

	if(m_timetypebitmap.GetBitmap()!=NULL)
		DeleteObject(m_timetypebitmap.GetBitmap());
	
	m_timetypebitmap.SetBitmap((HBITMAP ) htimetype);

//	DeleteObject((HGDIOBJ )htimetype);
	GetDlgItem(IDC_APPLY)->EnableWindow();
}


void CFaceBrowse::OnFaceAutochangeface() 
{
	if(m_autoface)
	{
		m_autoface=FALSE;
	}
	else
	{
		m_autoface=TRUE;
	}
	GetDlgItem(IDC_APPLY)->EnableWindow();
}

void CFaceBrowse::OnFaceAutochangetimetype() 
{	
	if(m_autotimetype)
	{
		m_autotimetype=FALSE;
	}
	else
	{
		m_autotimetype=TRUE;
	}
	GetDlgItem(IDC_APPLY)->EnableWindow();
}


void CFaceBrowse::OnOK() 
{
	char files_path[512];
	GetModuleFileName(NULL,files_path,512);
	char *p = strrchr(files_path,'\\');
	p[1]='\0';
	strcat(files_path,"Settings.ini");

	::WritePrivateProfileString("Settings","m_minstartup",m_minstartup? "1":"0",files_path);
	::WritePrivateProfileString("Settings","m_alwayfront",m_forntall? "1":"0",files_path);
	
	HKEY hKey;
	if(m_autorun==1)
	{
		if(ERROR_SUCCESS==RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey))
		{
			char out_path[512];
			GetModuleFileName(NULL,out_path,512);//得到程序运行所在位置
			RegSetValueEx(hKey,"autorun",0,REG_SZ,(const unsigned char *)out_path,strlen(out_path)+1);
			RegCloseKey(hKey);
		}
	}
	else  
	{	
		if(ERROR_SUCCESS==RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey))
		{
			RegDeleteValue(hKey,"autorun");//删除此键,
			RegCloseKey(hKey);
		}

	}
	::WritePrivateProfileString("Settings","m_autorun",m_autorun? "1":"0",files_path);



	if(m_autoface)//随机面板,在原来的基础上加1,一直加到最后一个,再返回到第一个
	{
		m_face++;
		if(m_face>7)
		{
			m_face=0;
		}
		CString str_auto;
		str_auto.Format("%d",m_face);
		::WritePrivateProfileString("Face","m_face",str_auto,files_path);
	}
	else//不随机,保存面板选择
	{	
		CString strbitmap;
		strbitmap.Format("%d",m_face);
		::WritePrivateProfileString("Face","m_face",strbitmap,files_path);
	}

	if(m_autotimetype)//随机时间字体,随机从8个数中取得一个保存
	{
		m_timetype++;
		if(m_timetype>7)
		{
			m_timetype=0;
		}
		CString str_aut;
		str_aut.Format("%d",m_timetype);
		::WritePrivateProfileString("Face","m_timetype",str_aut,files_path);
		
	}
	else//不随机,保存字体选择
	{	
		CString strtimetype;
		strtimetype.Format("%d",m_timetype);
		::WritePrivateProfileString("Face","m_timetype",strtimetype,files_path);
	}

	CString strautotimetype;
	strautotimetype.Format("%d",m_autotimetype);//随机时间字体checkbox是否打勾
	::WritePrivateProfileString("Face","m_autotimetype",strautotimetype,files_path);

	CString strautoface;
	strautoface.Format("%d",m_autoface);//随机面板checkbox是否打勾
	::WritePrivateProfileString("Face","m_autoface",strautoface,files_path);


	OnApply();
	CDialog::OnOK();
}




void CFaceBrowse::OnApply()//应用 
{
	//选择面板后,OK确定后,要将主界面更换为所选图片
	char files_path[512];
	GetModuleFileName(NULL,files_path,512);
	char *p = strrchr(files_path,'\\');
	p[1]='\0';
	strcat(files_path,"Settings.ini");
	
	//为何写文件:因为要更换面板的时候,要重画界面,让clockDlg里的OnPaint重新从文件读取面板选择
	//如果应用后,再按取消,则将原来m_keepfacenumber的数再写回去
	CString str_face;
	str_face.Format("%d",m_face);
	::WritePrivateProfileString("Face","m_face",str_face,files_path);

	CString str_time;
	str_time.Format("%d",m_timetype);
	::WritePrivateProfileString("Face","m_timetype",str_time,files_path);
	::ShowWindow(AfxGetMainWnd()->GetSafeHwnd(),SW_HIDE);
	CBitmap bmp;
	switch(m_face)
	{
		case 0:
			bmp.LoadBitmap(IDB_BIT1);
			m_nNumX=10; 
			m_nNumY=119;
			break;
		case 1:
			bmp.LoadBitmap(IDB_BIT2);
			m_nNumX=8; 
			m_nNumY=124;
			break;
		case 2:
			bmp.LoadBitmap(IDB_BIT3);
			m_nNumX=8; 
			m_nNumY=124;
			break;
		case 3:
			bmp.LoadBitmap(IDB_BIT4);
			m_nNumX=8; 
			m_nNumY=125;
			break;
		case 4:
			bmp.LoadBitmap(IDB_BIT5);
			m_nNumX=8; 
			m_nNumY=122;
			break;
		case 5:
			bmp.LoadBitmap(IDB_BIT6);
			m_nNumX=8; 
			m_nNumY=122;		
			break;
		case 6:
			bmp.LoadBitmap(IDB_BIT7);
			m_nNumX=7; 
			m_nNumY=108;
			break;
		case 7:
			bmp.LoadBitmap(IDB_BIT8);
			m_nNumX=8; 
			m_nNumY=120;
			break;
		case 8:
			bmp.LoadBitmap(IDB_BIT9);
			m_nNumX=9; 
			m_nNumY=104;
			break;		
		case 9:
			bmp.LoadBitmap(IDB_BIT10);
			m_nNumX=8; 
			m_nNumY=125;
			break;	
		case 10:
			bmp.LoadBitmap(IDB_BIT11);
			m_nNumX=13; 
			m_nNumY=121;
			break;	
		case 11:
			bmp.LoadBitmap(IDB_BIT12);
			m_nNumX=8; 
			m_nNumY=122;
			break;		

	}


	HRGN rgn;
	rgn = BitmapToRegion((HBITMAP)bmp, RGB(255, 0, 255));
	::SetWindowRgn(AfxGetMainWnd()->GetSafeHwnd(),rgn, TRUE);
	bmp.DeleteObject();
	::ShowWindow(AfxGetMainWnd()->GetSafeHwnd(),SW_SHOW);
	
}

void CFaceBrowse::OnCancel() //取消
{
	char files_path[512];
	GetModuleFileName(NULL,files_path,512);
	char *p = strrchr(files_path,'\\');
	p[1]='\0';
	strcat(files_path,"Settings.ini");
	
	
	//如果应用后,再按取消,则将原来m_keepfacenumber的数再写回去
	int keepface=GetPrivateProfileInt("Face","m_face",0,files_path);
	int keeptime=GetPrivateProfileInt("Face","m_face",0,files_path);
	if(m_keepfacenumber!=keepface||m_keeptimenumber!=keeptime)
	{
		CString str_face;
		str_face.Format("%d",m_keepfacenumber);
		::WritePrivateProfileString("Face","m_face",str_face,files_path);
		
		CString str_time;

⌨️ 快捷键说明

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