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