www.pudn.com > GPS.2.rar > BrightDlg.cpp
// BrightDlg.cpp : implementation file
//
#include "stdafx.h"
#include "GPS.h"
#include "BrightDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern HANDLE hBak;
#define IOCTL_GET_STA 0x803
#define IOCTL_SET_STA 0x804
#define MAX_TIMEOUT 2147483
const TCHAR szregRootKey[]=TEXT("ControlPanel\\Backlight");
const TCHAR szregBatteryTimeout[]=TEXT("BatteryTimeout");
const TCHAR szregACTimeout[]=TEXT("ACTimeout");
// CBrightDlg dialog
CBrightDlg::CBrightDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBrightDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBrightDlg)
//}}AFX_DATA_INIT
out = 0;
m_strAcTime [0] = "15秒";
m_strAcTime [1]= "30秒";
m_strAcTime [2]= "1分";
m_strAcTime [3] = "2分";
m_strAcTime [4]= "5分";
m_strAcTime [5]= "10分";
m_strAcTime [6]= "30分";
m_strAcTime [7]= "60分";
m_strAcTime [8]= "从不";
m_strBatTime [0] = "15秒";
m_strBatTime [1]= "30秒";
m_strBatTime [2]= "1分";
m_strBatTime [3] = "2分";
m_strBatTime [4]= "5分";
m_strBatTime [5]= "10分";
m_strBatTime [6]= "30分";
m_strBatTime [7]= "60分";
m_strBatTime [8]= "从不";
/*
m_strBatTime15s = "15秒";
m_strBatTime30s = "30秒";
m_strBatTime1m = "1分";
m_strBatTime2m = "2分";
m_strBatTime5m = "5分";
m_strBatTime10m = "10分";
m_strBatTime30m = "30分";
m_strBatTime60m = "15秒";
m_strBatTimeNever = "从不";
*/
// m_strAcTime = {"15秒","30秒","1分","2分","5分","10分","30分","60分","从不"};
}
void CBrightDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBrightDlg)
DDX_Control(pDX, IDC_BRIGHT9, m_staBright9);
DDX_Control(pDX, IDC_BRIGHT8, m_staBright8);
DDX_Control(pDX, IDC_BRIGHT6, m_staBright6);
DDX_Control(pDX, IDC_BRIGHT7, m_staBright7);
DDX_Control(pDX, IDC_BRIGHT5, m_staBright5);
DDX_Control(pDX, IDC_BRIGHT4, m_staBright4);
DDX_Control(pDX, IDC_BRIGHT3, m_staBright3);
DDX_Control(pDX, IDC_BRIGHT2, m_staBright2);
DDX_Control(pDX, IDC_BRIGHT1, m_staBright1);
DDX_Control(pDX, IDC_BRIGHT0, m_staBright0);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBrightDlg, CDialog)
//{{AFX_MSG_MAP(CBrightDlg)
ON_WM_KEYDOWN()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_PAINT()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBrightDlg message handlers
BOOL CBrightDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_Left=0;
m_Top=0;
m_Width=320;
m_Height=240;
::SetWindowPos(this->GetSafeHwnd(),HWND_TOP,m_Left, m_Top,
m_Width, m_Height,SWP_SHOWWINDOW);
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
m_BackScreenBitmap.LoadBitmap(IDB_BRIGHT_BKG);
SetToolRectangle();
m_prePick=-1;
m_currentPick=0;
m_bIsExecute=FALSE ;
////////// 亮度
DeviceIoControl(hBak,IOCTL_GET_STA,NULL,0,&out,1,NULL,NULL);
if(out<=9)
ShowBright(9-out);
else
ShowBright(9);
//点击屏墓音
//////////关屏,待机
HKEY hKey;
LONG lResult;
DWORD dwType;
DWORD dwBat,dwAC;
DWORD dwLen;
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, szregRootKey, 0, KEY_ALL_ACCESS, &hKey);
if(ERROR_SUCCESS == lResult)
{
dwType = REG_DWORD;
dwLen = sizeof(DWORD);
lResult = RegQueryValueEx(hKey, szregBatteryTimeout, NULL, &dwType,(LPBYTE)&dwBat, &dwLen);
if(ERROR_SUCCESS == lResult)
{
}
lResult = RegQueryValueEx(hKey, szregACTimeout, NULL, &dwType, (LPBYTE)&dwAC,&dwLen);
{
}
}
if(dwBat==15) m_strBat=m_strBatTime[0];
else if(dwBat==30) m_strBat=m_strBatTime[1];
else if(dwBat==60) m_strBat=m_strBatTime[2];
else if(dwBat==120) m_strBat=m_strBatTime[3];
else if(dwBat==300) m_strBat=m_strBatTime[4];
else if(dwBat==600) m_strBat=m_strBatTime[5];
else if(dwBat==1800) m_strBat=m_strBatTime[6];
else if(dwBat==3600) m_strBat=m_strBatTime[7];
else if(dwBat==MAX_TIMEOUT) m_strBat=m_strBatTime[8];
else m_strBat=_T("");
if(dwAC==15) m_strAc=m_strAcTime[0];
else if(dwAC==30) m_strAc=m_strAcTime[1];
else if(dwAC==60) m_strAc=m_strAcTime[2];
else if(dwAC==120) m_strAc=m_strAcTime[3];
else if(dwAC==300) m_strAc=m_strAcTime[4];
else if(dwAC==600) m_strAc=m_strAcTime[5];
else if(dwAC==1800) m_strAc=m_strAcTime[6];
else if(dwAC==3600) m_strAc=m_strAcTime[7];
else if(dwAC==MAX_TIMEOUT) m_strAc=m_strAcTime[8];
else m_strAc=_T("");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CBrightDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
m_prePick=m_currentPick ;
if ( nChar == VK_UP || nChar == VK_LEFT )
{
switch (m_prePick)
{
case 0:
//GPS黑别的白
CopyBMP(IDB_BRIGHT_SUB_B,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 0 ;
break ;
case 1:
//mp3黑别的白
CopyBMP(IDB_BRIGHT_SUB_B,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 0 ;
break ;
case 2:
//mp4黑别的白
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_B,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 1 ;
break ;
case 3:
//图黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_B,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 2 ;
break;
case 4:
//工具黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_B,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 3 ;
break ;
case 5:
//设置黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_B,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 4 ;
break;
case 6:
//设置黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_B,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 5 ;
break;
}
}
if ( nChar == VK_DOWN || nChar == VK_RIGHT)
{
switch (m_prePick)
{
case 0:
//MP3黑别的白
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_B,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 1 ;
break ;
case 1:
//mp4黑别的白
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_B,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 2 ;
break ;
case 2:
//picture黑别的白
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_B,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 3 ;
break ;
case 3:
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_B,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 4 ;
break;
case 4:
//set黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_B,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_currentPick = 5 ;
break ;
case 5:
//设置黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_B,6);
m_currentPick = 6 ;
break;
case 6:
//设置黑
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_B,6);
m_currentPick = 6 ;
break;
}
}
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CBrightDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
m_prePick = m_currentPick ;
for ( int i = 0 ; i < 8 ; i ++ )
{
if ( m_rect[i].PtInRect (point) )
{
{
CDC* pDC = GetDC () ;
CDC memDC ;
memDC.CreateCompatibleDC ( pDC ) ;
CBitmap bmp ;
switch ( m_prePick )
{
case 0:
{//白
bmp.LoadBitmap ( IDB_BRIGHT_SUB_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 1:
{
bmp.LoadBitmap ( IDB_BRIGHT_ADD_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 2:
{
bmp.LoadBitmap ( IDB_BRIGHT_1_LEFT_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 3:
{
bmp.LoadBitmap ( IDB_BRIGHT_1_RIGHT_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 4:
{
bmp.LoadBitmap ( IDB_BRIGHT_2_LEFT_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 5:
{
bmp.LoadBitmap ( IDB_BRIGHT_2_RIGHT_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 6:
{
bmp.LoadBitmap ( IDB_BRIGHT_OK_W ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(),
m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
}
CBitmap bmp1 ;
switch ( i )
{
case 0:
{
//load the bitmap
//黑
bmp1.LoadBitmap ( IDB_BRIGHT_SUB_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 1:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_ADD_B) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 2:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_1_LEFT_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 3:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_1_RIGHT_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 4:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_2_LEFT_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
// AfxMessageBox(L"asdf",MB_OK);
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 5:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_2_RIGHT_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
case 6:
{
//load the bitmap
bmp1.LoadBitmap ( IDB_BRIGHT_OK_B ) ;
CBitmap* pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
break ;
}
}
memDC.DeleteDC () ;
ReleaseDC ( pDC ) ;
m_currentPick = i ;
}
}
}
}
void CBrightDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
CBrightDlg dlg;
// TODO: Add your message handler code here and/or call default
CopyBMP(IDB_BRIGHT_SUB_W,0);
CopyBMP(IDB_BRIGHT_ADD_W,1);
CopyBMP(IDB_BRIGHT_1_LEFT_W,2);
CopyBMP(IDB_BRIGHT_1_RIGHT_W,3);
CopyBMP(IDB_BRIGHT_2_LEFT_W,4);
CopyBMP(IDB_BRIGHT_2_RIGHT_W,5);
CopyBMP(IDB_BRIGHT_OK_W,6);
m_bIsExecute = FALSE ;
for ( int i = 0 ; i < 8 ; i ++ )
{
if ( m_rect[i].PtInRect (point) )
{
if ( m_currentPick == i)
{
m_bIsExecute =TRUE ;
switch (i)
{
case 0:
// dlg.DoModal();
OnBtnSub();
break ;
case 1:
OnBtnAdd();
break ;
case 2:
OnBtn_1_Left();
break ;
case 3:
OnBtn_1_Right();
break ;
case 4:
OnBtn_2_Left();
break ;
case 5:
OnBtn_2_Right();
break ;
case 6:
OnBtnOK();
break ;
default:
break ;
}
}
}
}
}
void CBrightDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
DrawInterface(dc);
// Do not call CDialog::OnPaint() for painting messages
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(255,0,10));
dc.ExtTextOut(147,115,ETO_CLIPPED,CRect(147,115,200,133),m_strBat,NULL);
dc.ExtTextOut(147,174,ETO_CLIPPED,CRect(147,174,200,195),m_strAc,NULL);
}
BOOL CBrightDlg::OnEraseBkgnd(CDC* pDC)
{
BITMAP bmpInfo;
m_BackScreenBitmap.GetBitmap(&bmpInfo);
// Create an in-memory DC compatible with the
// display DC we're using to paint
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
// Select the bitmap into the in-memory DC
CBitmap* pOldBitmap = dcMemory.SelectObject(&m_BackScreenBitmap);
// Find a centerpoint for the bitmap in the client area
CRect rect;
GetClientRect(&rect);
// Copy the bits from the in-memory DC into the on-
// screen DC to actually do the painting. Use the centerpoint
// we computed for the target offset.
pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
return TRUE;
}
void CBrightDlg::SetToolRectangle()
{
m_rect [0].SetRect(71,48,103,81);
m_rect [1].SetRect(217,48,249,80);
m_rect [2].SetRect(71,107,104,140);
m_rect [3].SetRect(217,107,250,139);
m_rect [4].SetRect(71,167,103,200);
m_rect [5].SetRect(217,167,250,199);
m_rect [6].SetRect(276,198,310,232);
}
void CBrightDlg::DrawInterface(CDC &dc)
{
CDC memDC ;
memDC.CreateCompatibleDC ( &dc ) ;
CBitmap* pBitmap ; //load all bitmap
CBitmap* pOldBitmap ; //save old bitmap temp
//.............................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if (m_NavRefresh || m_currentPick == 0)
{
//黑
pBitmap ->LoadBitmap ( IDB_BRIGHT_SUB_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[0].TopLeft().x, m_rect[0].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{ //白
pBitmap ->LoadBitmap ( IDB_BRIGHT_SUB_W) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[0].TopLeft().x, m_rect[0].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//.............................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 1 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_ADD_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[1].TopLeft().x, m_rect[1].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_ADD_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[1].TopLeft().x, m_rect[1].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//...............................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 2 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_1_LEFT_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[2].TopLeft().x, m_rect[2].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_1_LEFT_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[2].TopLeft().x, m_rect[2].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//................................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 3 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_1_RIGHT_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[3].TopLeft().x, m_rect[3].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_1_RIGHT_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[3].TopLeft().x, m_rect[3].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//................................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 4 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_2_LEFT_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[4].TopLeft().x, m_rect[4].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_2_LEFT_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[4].TopLeft().x, m_rect[4].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//................................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 5 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_2_RIGHT_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[5].TopLeft().x, m_rect[5].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_2_RIGHT_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[5].TopLeft().x, m_rect[5].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
////////////////////////
//分配bitmap对象内存
pBitmap = new CBitmap ;
if ( m_currentPick == 6 )
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_OK_B ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[6].TopLeft().x, m_rect[6].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
else
{
pBitmap ->LoadBitmap ( IDB_BRIGHT_OK_W ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
//将图片COPY到指定的像素位置
dc.BitBlt ( m_rect[6].TopLeft().x, m_rect[6].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
}
memDC.SelectObject ( pOldBitmap ) ;
//释放bitmap对象内存
delete pBitmap ;
//////////////////////
memDC.DeleteDC () ;
}
void CBrightDlg::CopyBMP(int m_map, int i)
{
CDC* pDC = GetDC () ;
CDC memDC ;
memDC.CreateCompatibleDC ( pDC ) ;
CBitmap bmp,bmp1 ;
CBitmap* pOldBitmap ;
bmp1.LoadBitmap ( m_map) ;
pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(),
m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
memDC.DeleteDC () ;
ReleaseDC ( pDC ) ;
}
void CBrightDlg::OnBtnAdd()
{
if(out>0)
out--;
else
out=0;
ShowBright(9-out);
DeviceIoControl(hBak,IOCTL_SET_STA,&out,1,NULL,0,NULL,NULL);
}
void CBrightDlg::OnBtnSub()
{
if(out<9)
out++;
else
out=9;
ShowBright(9-out);
DeviceIoControl(hBak,IOCTL_SET_STA,&out,1,NULL,0,NULL,NULL);
}
void CBrightDlg::OnBtnOK()
{
HKEY hKey;
DWORD dwType;
DWORD dwBatTime,dwACTime;
DWORD dwLen;
HANDLE Handle;
if (m_strBat == m_strBatTime[0] )
{
dwBatTime=15;
}
else if(m_strBat == m_strBatTime[1])
{
dwBatTime=30;
}
else if(m_strBat == m_strBatTime[2])
{
dwBatTime=60;
}
else if(m_strBat == m_strBatTime[3])
{
dwBatTime=120;
}
else if(m_strBat == m_strBatTime[4])
{
dwBatTime=300;
}
else if(m_strBat == m_strBatTime[5])
{
dwBatTime=600;
}
else if(m_strBat == m_strBatTime[6])
{
dwBatTime=1800;
}
else if(m_strBat == m_strBatTime[7])
{
dwBatTime=3600;
}
else if(m_strBat == m_strBatTime[8])
{
dwBatTime=MAX_TIMEOUT;
}
if(m_strAc == m_strAcTime[0])
{
dwACTime=15;
}
else if(m_strAc == m_strAcTime[1])
{
dwACTime=30;
}
else if(m_strAc == m_strAcTime[2])
{
dwACTime=60;
}
else if(m_strAc == m_strAcTime[3])
{
dwACTime=120;
}
else if(m_strAc == m_strAcTime[4])
{
dwACTime=300;
}
else if(m_strAc == m_strAcTime[5])
{
dwACTime=600;
}
else if(m_strAc == m_strAcTime[6])
{
dwACTime=1800;
}
else if(m_strAc == m_strAcTime[7])
{
dwACTime=3600;
}
else if(m_strAc == m_strAcTime[8])
{
dwACTime=MAX_TIMEOUT;
}
long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, szregRootKey, 0, KEY_ALL_ACCESS, &hKey);
if(ERROR_SUCCESS == lResult)
{
dwType = REG_DWORD;
dwLen = sizeof(DWORD);
lResult = RegSetValueEx(hKey,szregBatteryTimeout, 0, dwType, (LPBYTE)&dwBatTime,
dwLen);
lResult = RegSetValueEx(hKey,szregACTimeout,0,dwType,(LPBYTE)&dwACTime,
dwLen);
}
Handle = CreateEvent(NULL, FALSE, FALSE, TEXT("BackLightChangeEvent"));
if (Handle)
{
SetEvent(Handle);
CloseHandle(Handle);
}
CDialog::OnOK();
}
void CBrightDlg::ShowBright(UCHAR bright)
{
m_staBright1.ShowWindow(SW_HIDE);
m_staBright2.ShowWindow(SW_HIDE);
m_staBright3.ShowWindow(SW_HIDE);
m_staBright4.ShowWindow(SW_HIDE);
m_staBright5.ShowWindow(SW_HIDE);
m_staBright6.ShowWindow(SW_HIDE);
m_staBright7.ShowWindow(SW_HIDE);
m_staBright8.ShowWindow(SW_HIDE);
m_staBright9.ShowWindow(SW_HIDE);
m_staBright0.ShowWindow(SW_HIDE);
switch(bright)
{
case 0:
m_staBright0.ShowWindow(SW_SHOW);
break;
case 1:
m_staBright1.ShowWindow(SW_SHOW);
break;
case 2:
m_staBright2.ShowWindow(SW_SHOW);
break;
case 3:
m_staBright3.ShowWindow(SW_SHOW);
break;
case 4:
m_staBright4.ShowWindow(SW_SHOW);
break;
case 5:
m_staBright5.ShowWindow(SW_SHOW);
break;
case 6:
m_staBright6.ShowWindow(SW_SHOW);
break;
case 7:
m_staBright7.ShowWindow(SW_SHOW);
break;
case 8:
m_staBright8.ShowWindow(SW_SHOW);
break;
case 9:
m_staBright9.ShowWindow(SW_SHOW);
break;
default:
break;
}
}
void CBrightDlg::OnBtn_1_Left()
{
for (int i = 0; i < 9;i++)
{
if (m_strBat == m_strBatTime[i])
{
if (i == 0 )
m_strBat = m_strBatTime[i];
else
m_strBat = m_strBatTime[i - 1];
InvalidateRect(CRect(147,114,200,132));
return;
}
}
}
void CBrightDlg::OnBtn_1_Right()
{
for (int i = 0; i < 9;i++)
{
if (m_strBat == m_strBatTime[i])
{
if (i == 8)
m_strBat = m_strBatTime[i];
else
m_strBat = m_strBatTime[i + 1];
InvalidateRect(CRect(147,114,200,132));
return;
}
}
}
void CBrightDlg::OnBtn_2_Left()
{
for (int i = 0; i < 9;i++)
{
if (m_strAc == m_strAcTime[i])
{
if (i == 0)
m_strAc = m_strAcTime[i];
else
m_strAc = m_strAcTime[i - 1];
InvalidateRect(CRect(147,172,200,193));
return;
}
}
}
void CBrightDlg::OnBtn_2_Right()
{
for (int i = 0; i < 9;i++)
{
if (m_strAc == m_strAcTime[i])
{
if ( i == 8)
m_strAc = m_strAcTime[i];
else
m_strAc = m_strAcTime[i + 1];
InvalidateRect(CRect(147,172,200,193));
return;
}
}
}
void CBrightDlg::OnOK()
{
// PROCESS_INFORMATION info;
switch (m_currentPick)
{
case 0:
// dlg.DoModal();
OnBtnSub();
break ;
case 1:
OnBtnAdd();
break ;
case 2:
OnBtn_1_Left();
break ;
case 3:
OnBtn_1_Right();
break ;
case 4:
OnBtn_2_Left();
break ;
case 5:
OnBtn_2_Right();
break ;
case 6:
OnBtnOK();
break ;
default:
break ;
}
}