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

📄 picdlg.cpp

📁 wince 5.0下应用软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// PIcDlg.cpp: implementation of the CPIcDlg class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PIcDlg.h"


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPIcDlg::CPIcDlg()
: m_hWnd(NULL),m_hInstance(NULL)
{
	m_Btn1 = NULL;
	m_Btn2 = NULL;
	m_Btn3 = NULL;
	m_Btn4 = NULL;
	m_Flag = TRUE;
	MEMZERO(m_szFilePath);
	MEMZERO(m_bgBitmapFile);
	MEMZERO(m_CurrentRunFilePath);
}

CPIcDlg::~CPIcDlg()
{
}

LRESULT CALLBACK CPIcDlg::MainProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	CPIcDlg* pWnd = (CPIcDlg*)GetWindowLong(hWnd, GWL_USERDATA);
	if(!pWnd) return NULL;
	switch (msg)								// Check For Windows Messages
	{
	case WM_SYSCOMMAND:						// Intercept System Commands
		pWnd->OnSysCommand(wParam,lParam);
		break;
	case WM_INITDIALOG:
		pWnd->OnInitDialog(wParam,lParam);
		break;
	case WM_TIMER:
		pWnd->OnTimer(wParam,lParam);
		break;
	case WM_KEYDOWN:
		pWnd->OnKeyDown(wParam,lParam);
		break;
	case WM_KEYUP:
		pWnd->OnKeyUp(wParam,lParam);
		break;
	case WM_MOUSEMOVE:
		pWnd->OnMouseMove(wParam,lParam);
		break;
	case WM_LBUTTONDOWN:
		pWnd->OnLButtonDown(wParam,lParam);
		break;
	case WM_LBUTTONUP:
		pWnd->OnLButtonUp(wParam,lParam);
		break;
	case WM_PAINT:
		pWnd->OnPaint();
		break;

	case WM_FILECHANGEINFO:
		pWnd->OnFileChangeInfo(wParam,lParam);
		break;
/*
	case WM_ERASEBKGND:
//		return true;
//		pWnd->Erasebkgnd();
		break;
*/
	case WM_COMMAND:
		pWnd->OnCommand(wParam,lParam);
		break;
	default:
		DefWindowProc(hWnd, msg, wParam, lParam);
		break;
	}
	return true;//
}

void CPIcDlg::OnPaint()
{
#if 1
	PAINTSTRUCT ps;	
	TCHAR wzBtnName[MAX_PATH],wzTitleName[MAX_PATH];//	wzBtn2Name[MAX_PATH],wzBtn3Name[MAX_PATH],;
	RECT rect;
	COLORREF Color;
	HDC hdc = BeginPaint(m_hWnd,&ps);
	{
		HBITMAP bmpTemp = ::SHLoadDIBitmap(m_bgBitmapFile);

		HDC memDC = CreateCompatibleDC(hdc);
		int iWidth = GetSystemMetrics (SM_CXSCREEN);
		int iHeight = GetSystemMetrics (SM_CYSCREEN);
		HFONT hFont1 = NULL,hFont= NULL;
		SetBkMode(memDC , TRANSPARENT);

		SelectObject(memDC, bmpTemp);

		if(m_Flag)
		{
			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_MAIN,G_BTN1_NAME_AREA,G_BTN1_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			hFont = CreateShowFont(G_BTN_SECT_MAIN,G_BTN_NAME_FONT);
			SelectObject(memDC, hFont);

			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_MAIN,G_BTN2_NAME_AREA,G_BTN2_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER | DT_CENTER);	

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_MAIN,G_BTN3_NAME_AREA,G_BTN3_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);
			
			MEMZERO(wzTitleName);
			SetBtnNameArea(G_BTN_SECT_MAIN,G_BTN_TLTIE_AREA,G_BTN_TLTIE_NAME,G_BTN_TLTIE_COLOR,&rect,wzTitleName,&Color);
			hFont1 = CreateShowFont(G_BTN_SECT_MAIN,G_BTN_NAME_FONT);
			SelectObject(memDC, hFont1);

			SetTextColor(memDC,Color);
			DrawText(memDC,wzTitleName, lstrlen(wzTitleName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);
		}else
		{
			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN1_NAME_AREA,G_BTN1_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			hFont = CreateShowFont(G_BTN_SECT_MAIN,G_BTN_NAME_FONT);
			SelectObject(memDC, hFont);

			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN2_NAME_AREA,G_BTN2_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER | DT_CENTER);	

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN3_NAME_AREA,G_BTN3_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN5_NAME_AREA,G_BTN5_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);

			MEMZERO(wzBtnName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN6_NAME_AREA,G_BTN6_NAME,G_BTN_NAME_COLO,&rect,wzBtnName,&Color);
			SetTextColor(memDC,Color);
			DrawText(memDC,wzBtnName, lstrlen(wzBtnName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);
			
			MEMZERO(wzTitleName);
			SetBtnNameArea(G_BTN_SECT_GAME,G_BTN_TLTIE_AREA,G_BTN_TLTIE_NAME,G_BTN_TLTIE_COLOR,&rect,wzTitleName,&Color);
			hFont1 = CreateShowFont(G_BTN_SECT_MAIN,G_BTN_NAME_FONT);
			SelectObject(memDC, hFont1);

			SetTextColor(memDC,Color);
			DrawText(memDC,wzTitleName, lstrlen(wzTitleName), &rect, DT_SINGLELINE|DT_VCENTER |DT_CENTER);

		}
		BitBlt(hdc,0, 0, iWidth, iHeight, memDC, 0, 0, SRCCOPY);

		DeleteDC(memDC);
		DeleteObject(hFont);
		DeleteObject(hFont1);
		DeleteObject(bmpTemp);
	}
	EndPaint(m_hWnd,&ps);

#endif
}

BOOL CPIcDlg::CreatePicWindow()
{
	BOOL fRet = FALSE;
	if(!InitWindowInfo())
		return fRet;
	m_hInstance = GetModuleHandle(NULL);

	WNDCLASS	wc;
    SHCHANGENOTIFYENTRY pshcne;

	m_ScreenX = ::GetSystemMetrics(SM_CXSCREEN);
	m_ScreenY = ::GetSystemMetrics(SM_CYSCREEN);

	wc.style		= CS_HREDRAW | CS_VREDRAW ;		// Redraw On Move, And Own DC For Window
	wc.lpfnWndProc		= (WNDPROC) MainProc;				// WndProc Handles Messages
	wc.cbClsExtra		= 0;						// No Extra Window Data
	wc.cbWndExtra		= 0;						// No Extra Window Data
	wc.hInstance		= m_hInstance;					// Set The Instance
	wc.hIcon		= NULL;//LoadIcon(NULL, NUL);			// Load The Default Icon
	wc.hCursor		= LoadCursor(NULL, IDC_ARROW);			// Load The Arrow Pointer
	wc.hbrBackground	= NULL;						// No Background Required For GL
	wc.lpszMenuName		= NULL;						// We Don't Want A Menu
	wc.lpszClassName	= G_CLASS_NAME;					// Set The Class Name
	
	if(!RegisterClass(&wc))
		return fRet;

	m_hWnd = CreateWindow(G_CLASS_NAME,								// Class Name
					NULL,								// Window Title
					/*WS_CLIPSIBLINGS |							// Required Window Style
					WS_CLIPCHILDREN |							// Required Window Style
					WS_OVERLAPPEDWINDOW,						// Selected Window Style
					*/
					WS_POPUP |WS_VISIBLE,
					0, 0,										// Window Position
					m_ScreenX,									// Calculate Adjusted Window Width
					m_ScreenY,									// Calculate Adjusted Window Height
					NULL,										// No Parent Window
					NULL,										// No Menu
					m_hInstance,									// Instance
					NULL);
	if(m_hWnd)
		fRet = TRUE;
	else
		return fRet;

	CreateButton();
	SetWindowLong(m_hWnd,GWL_USERDATA,(LONG)this);

    pshcne.dwEventMask = SHCNE_ALLEVENTS;  
	pshcne.pszWatchDir = NULL; 
	pshcne.fRecursive = TRUE;
    fRet = SHChangeNotifyRegister(m_hWnd, &pshcne);
    if (FALSE == fRet)
    {
        DWORD dw_error = GetLastError();
        return dw_error;
    }

//	
//	::MoveWindow(m_hWnd,0,m_ScreenY,m_ScreenX,m_ScreenY,FALSE);

//	::SetTimer(m_hWnd,MOVE_WINDOWS_TIMER_EVEN,MOVE_WINDOWS_TIMER_NUM,NULL);
	::UpdateWindow(m_hWnd);
	::ShowWindow(m_hWnd,SW_SHOW);
	return fRet;
}

BOOL CPIcDlg::CreateButton()
{
	DestroyBtn();
	BOOL fRet = FALSE;
	IMGBTNINFO info;
	int btnStartX = 0;
	int btnStartY = 0;
	info.dimID = NULL;
	info.upID = m_bgBitmapFile;
	TCHAR wzBtnDnAllPath[MAX_PATH];
	TCHAR wzBtnUpAllPath[MAX_PATH];
//create btn1
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN1_UP_KEY_MAIN,G_BTN1_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN1_DN_KEY_MAIN,G_BTN1_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn1 = new CECreateButton;
	m_Btn1->CreateBtn(m_hWnd,COMMAND_BTN1, m_hInstance,&info,btnStartX,btnStartY);
	}
//create btn2
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN2_UP_KEY_MAIN,G_BTN2_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN2_DN_KEY_MAIN,G_BTN2_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn2 = new CECreateButton;
	m_Btn2->CreateBtn(m_hWnd,COMMAND_BTN2, m_hInstance,&info,btnStartX,btnStartY);
	}
//create btn3
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN3_UP_KEY_MAIN,G_BTN3_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN3_DN_KEY_MAIN,G_BTN3_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn3 = new CECreateButton;
	m_Btn3->CreateBtn(m_hWnd,COMMAND_BTN3, m_hInstance,&info,btnStartX,btnStartY);
	}

//create btn4
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN4_UP_KEY_MAIN,G_BTN4_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN4_DN_KEY_MAIN,G_BTN4_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn4 = new CECreateButton;
	m_Btn4->CreateBtn(m_hWnd,COMMAND_BTN4, m_hInstance,&info,btnStartX,btnStartY);
	}
/*
//create btn5
	{
	MEMZERO(wzBtnAllPath);
	GetBtnInfo(G_BTN_SECT_MAIN,G_BTN5_KEY_MAIN,G_BTN5_KEY_AREA,wzBtnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnAllPath;
	m_Btn = new CECreateButton;
	m_Btn->CreateBtn(m_hWnd,COMMAND_BTN5, m_hInstance,&info,btnStartX,btnStartY);
	}
*/

//create game btn1
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN1_UP_KEY_MAIN,G_BTN1_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN1_DN_KEY_MAIN,G_BTN1_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn5 = new CECreateButton;
	m_Btn5->CreateBtn(m_hWnd,COMMAND_BTN5, m_hInstance,&info,btnStartX,btnStartY);
	m_Btn5->ShowBtn(FALSE);
	}
//create game btn2
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN2_UP_KEY_MAIN,G_BTN2_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_GAME,G_BTN2_DN_KEY_MAIN,G_BTN2_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn6 = new CECreateButton;
	m_Btn6->CreateBtn(m_hWnd,COMMAND_BTN6, m_hInstance,&info,btnStartX,btnStartY);
	m_Btn6->ShowBtn(FALSE);
	}
//create game btn3
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN3_UP_KEY_MAIN,G_BTN3_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_GAME,G_BTN3_DN_KEY_MAIN,G_BTN3_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn7 = new CECreateButton;
	m_Btn7->CreateBtn(m_hWnd,COMMAND_BTN7, m_hInstance,&info,btnStartX,btnStartY);
	m_Btn7->ShowBtn(FALSE);
	}

//create game btn4
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN5_UP_KEY_MAIN,G_BTN5_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_GAME,G_BTN5_DN_KEY_MAIN,G_BTN5_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn8 = new CECreateButton;
	m_Btn8->CreateBtn(m_hWnd,COMMAND_BTN8, m_hInstance,&info,btnStartX,btnStartY);
	m_Btn8->ShowBtn(FALSE);
	}

//create game btn5
	{
	MEMZERO(wzBtnDnAllPath);
	MEMZERO(wzBtnUpAllPath);
	GetBtnInfo(G_BTN_SECT_GAME,G_BTN6_UP_KEY_MAIN,G_BTN6_KEY_AREA,wzBtnUpAllPath,&btnStartX,&btnStartY);
	info.upID = wzBtnUpAllPath;

	GetBtnInfo(G_BTN_SECT_GAME,G_BTN6_DN_KEY_MAIN,G_BTN6_KEY_AREA,wzBtnDnAllPath,&btnStartX,&btnStartY);
	info.dnID = wzBtnDnAllPath;
	m_Btn9 = new CECreateButton;
	m_Btn9->CreateBtn(m_hWnd,COMMAND_BTN9, m_hInstance,&info,btnStartX,btnStartY);
	m_Btn9->ShowBtn(FALSE);
	}
	return fRet;
}

BOOL CPIcDlg::InitWindowInfo()
{
	BOOL fRet = TRUE;
	char szbgBitmap[MAX_PATH];
	TCHAR wzbgBitmap[MAX_PATH];

	MEMZERO(wzbgBitmap);
	MEMZERO(szbgBitmap);
	MEMZERO(m_CurrentRunFilePath);
	MEMZERO(m_szFilePath);
	MEMZERO(m_bgBitmapFile);

	CFileHandle FileHandle;
	FileHandle.GetRunExePath(m_CurrentRunFilePath);
	if(WideCharToMultiByte(CP_ACP,0,m_CurrentRunFilePath,-1,m_szFilePath,wcslen(m_CurrentRunFilePath),0,0))
		fRet = TRUE;
	strcat(m_szFilePath,FILE_PATH);
	FileHandle.GetProfileString(m_szFilePath,G_BG_SECT_MAIN,G_BG_KEY_MAIN,szbgBitmap,"res\\Setup_CopyFile_bg.bmp");
	MultiByteToWideChar(CP_ACP, 0, szbgBitmap, -1, wzbgBitmap, strlen(szbgBitmap));

	memcpy(m_bgBitmapFile,m_CurrentRunFilePath,sizeof(m_CurrentRunFilePath));
	lstrcat(m_bgBitmapFile,wzbgBitmap);
	return fRet;
}

void CPIcDlg::Erasebkgnd()
{
#if 0
	PAINTSTRUCT ps;
	HDC hdc = BeginPaint(m_hWnd,&ps);
	{
		HBITMAP bmpTemp = ::SHLoadDIBitmap(m_bgBitmapFile);

		HDC memDC = CreateCompatibleDC(hdc);
		int iWidth = GetSystemMetrics (SM_CXSCREEN);
		int iHeight = GetSystemMetrics (SM_CYSCREEN);
		SelectObject(memDC, bmpTemp);
		BitBlt(hdc,0, 0, iWidth, iHeight, memDC, 0, 0, SRCCOPY);
		DeleteDC(memDC);
		DeleteObject(bmpTemp);
	}
	EndPaint(m_hWnd,&ps);
#endif
}

void CPIcDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
	switch(wParam)
	{
	case COMMAND_BTN1:
		{
			CreateRunProgram(G_BTN_SECT_MAIN,G_EXE1_KEY_MAIN);
		}
		break;
	case COMMAND_BTN2:
		{
			CreateRunProgram(G_BTN_SECT_MAIN,G_EXE2_KEY_MAIN);
		}

⌨️ 快捷键说明

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