📄 facebrowse.cpp
字号:
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 + -