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

📄 systeminfo.cpp

📁 用来显示PDA的系统信息,控制PDA的动作 today pugin程序.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		break;
	case 1:
		MoveToEx(hdc,24,0,NULL);
		LineTo(hdc,24,24);
		MoveToEx(hdc,24,47,NULL);
		LineTo(hdc,24,96);
		break;
	case 2:
		MoveToEx(hdc,24,0,NULL);
		LineTo(hdc,24,48);
		MoveToEx(hdc,24,71,NULL);
		LineTo(hdc,24,96);
		break;
	case 3:
		MoveToEx(hdc,24,0,NULL);
		LineTo(hdc,24,72);
		break;
	default:
		MoveToEx(hdc,24,0,NULL);
		LineTo(hdc,24,96);
		break;
	}
	DeleteObject(hPen);
	SelectObject(hdc,hPenOld);

	for(int i=0;i<4;i++)
		ShowWindow(m_hChildren[i],SW_HIDE);
	
	ShowWindow(m_hChildren[m_dwCurrentForm],SW_SHOW);
}

HWND	AddButtons(HWND hWnd,int ix,int iy,int iWidth,int iHeight,UINT uiID,BOOL bOwnerDraw)
{
	RECT rect;
    SystemParametersInfo(SPI_GETWORKAREA, NULL, &rect, FALSE);

	DWORD   dwFlags = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON;
	if(bOwnerDraw)
		dwFlags |= BS_OWNERDRAW;

	HWND	hButton = CreateWindow( L"Button", L"", 
							dwFlags, 
							ix, 
							iy, 
							iWidth, 
							iHeight, 
							hWnd,
							(HMENU) uiID,
							g_hInstance, NULL );
/*
	if(m_fOldProc = (WNDPROC)GetWindowLong(hButton, GWL_WNDPROC))
	{
		if(!SetWindowLong(hButton, GWL_WNDPROC, (LONG)ButtonSubProc))
		{
			return NULL;
		}
	}
*/
	return hButton;
}

LRESULT CALLBACK ButtonSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lResult;
	
	switch(uMsg)
	{
		case WM_ERASEBKGND:
			// Get the default response
			lResult = CallWindowProc(m_fOldProc, hwnd, uMsg, wParam, lParam);
			break;
		default:
			// respond to the messages with the default action
			lResult = CallWindowProc(m_fOldProc, hwnd, uMsg, wParam, lParam);
			break;
	}
	
	return lResult;
}

void				OnMainCreate(HWND hWnd)
{
	RECT rect;
    SystemParametersInfo(SPI_GETWORKAREA, NULL, &rect, FALSE);
	RegisterChildrenClass();
	//GetClientRect(hWnd,&rect);
	int i=0;

	for(i = 0;i<4;i++)
		AddButtons(hWnd,0,i*24,22,22,ID_BASE_COMMAND+i,TRUE);

	for(i=0;i<4;i++)
	{
		m_hChildren[i]=AddChildrenWindows(hWnd,29,0,rect.right-29,95);

		if(i==1)
		{
			SetTimer(m_hChildren[i],ID_PAGE2_TIMER,1000,NULL);
			hUpdateRgn = CreateRectRgn(26,6,15,56);
			hCombineRgn = CreateRectRgn(26,30,39,56);
			CombineRgn(hUpdateRgn,hUpdateRgn,hCombineRgn,RGN_OR);
			hCombineRgn = CreateRectRgn(26,54,63,56);
			CombineRgn(hUpdateRgn,hUpdateRgn,hCombineRgn,RGN_OR);
			hCombineRgn = CreateRectRgn(26,78,87,56);
			CombineRgn(hUpdateRgn,hUpdateRgn,hCombineRgn,RGN_OR);
			hCombineRgn = CreateRectRgn(92,6,15,122);
			CombineRgn(hUpdateRgn,hUpdateRgn,hCombineRgn,RGN_OR);
		}
		if(i==2)
		{
			SetTimer(m_hChildren[i],ID_PAGE3_TIMER,1000,NULL);
			//GetRunningPrograms();
			m_hOldRgn = CreateRectRgn(0,0,0,0);
			m_hOldAppRgn = CreateRectRgn(0,0,0,0);
		}
		if(i==3)
		{
			m_hOldTaskRgn = CreateRectRgn(0,0,0,0);
		}
	}

	for(i = 0;i<3;i++)
		AddButtons(m_hChildren[0],19+(i<<6),48,32,32,ID_DEVICE_COMMAND+i,TRUE);


//	m_hBmpClock = (HBITMAP)LoadBitmap(g_hInstance,MAKEINTRESOURCE(IDB_CLOCK));

//	m_hIconClock = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_CLOCK));

	m_hClock = AddChildrenWindows(m_hChildren[1],rect.right-29-64,28,48,64);
	SetTimer(m_hClock,ID_CLOCK_TIMER,1000,NULL);

	AddButtons(m_hChildren[2],rect.right-29-16,76,16,16,ID_APP_RIGHT,TRUE);
	AddButtons(m_hChildren[2],rect.right-29-32,76,16,16,ID_APP_LEFT,TRUE);

	AddButtons(m_hChildren[3],rect.right-29-18,1,16,16,ID_TASK_UP,TRUE);
	AddButtons(m_hChildren[3],rect.right-29-18,78,16,16,ID_TASK_DOWN,TRUE);

	AddButtons(m_hChildren[3],rect.right-29-18,20,16,16,ID_TASK_ADD,TRUE);
	AddButtons(m_hChildren[3],rect.right-29-18,39,16,16,ID_TASK_DELETE,TRUE);
	AddButtons(m_hChildren[3],rect.right-29-18,58,16,16,ID_TASK_EDIT,TRUE);

	//AddListView(m_hChildren[3],0,0,rect.right-29-48,95,ID_LISTVIEW,TRUE);
}

HWND		AddListView(HWND hWnd,int ix,int iy,int iWidth,int iHeight,UINT uiID,BOOL bOwnerDraw)
{
	HWND	hwndRet;
	DWORD	dwFlags;
	dwFlags = WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_SINGLESEL | LVS_NOCOLUMNHEADER;
	if(bOwnerDraw)
	{
		dwFlags |= LVS_OWNERDRAWFIXED;
		dwFlags |= LVS_OWNERDATA;
	}
	//dwFlags |= 

	hwndRet = CreateWindow (WC_LISTVIEW, 
		NULL,dwFlags, 
		ix, iy, iWidth, iHeight, 
		hWnd, 
		(HMENU) uiID, 
		g_hInstance, 
		0);
	
	ListView_SetExtendedListViewStyle(hwndRet,LVS_EX_FULLROWSELECT|LVS_EX_NOHSCROLL);

//	TODAYDRAWWATERMARKINFO	dwi;
/*
	dwi.hdc = GetWindowDC(hwndRet);
	GetClientRect(hwndRet, &dwi.rc);		
	dwi.hwnd = hwndRet;
	SendMessage(g_hWndParent,TODAYM_DRAWWATERMARK,0,(LPARAM)&dwi);
	ReleaseDC(hwndRet,dwi.hdc);*/

	LV_COLUMN lvColumn;
	lvColumn.mask = LVCF_WIDTH;
	lvColumn.cx = iWidth;
	ListView_InsertColumn(hwndRet, 0, &lvColumn);

	ListView_SetItemCountEx(hwndRet,7,LVSICF_NOINVALIDATEALL);

	return hwndRet;
}

HWND	AddChildrenWindows(HWND hWnd,int ix,int iy,int iWidth,int iHeight,UINT uiID)
{
	HWND	hChildrenWnd;
	hChildrenWnd = CreateWindow(TEXT("ChildrenToday"), L"", 
						WS_VISIBLE | WS_CHILD,
						ix, iy, iWidth, iHeight, 
						hWnd, (HMENU)uiID, g_hInstance, NULL);

	return hChildrenWnd;
}

BOOL		RegisterChildrenClass()
{
	WNDCLASS  wc;
 
    //Create our window class
    wc.style			= CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc		= (WNDPROC) ChildrenWndProc;
    wc.cbClsExtra		= 0;
    wc.cbWndExtra		= 0;
    wc.hInstance		= g_hInstance;
    wc.hIcon			= 0;
    wc.hCursor			= 0;
    wc.hbrBackground	= (HBRUSH) COLOR_BACKGROUND;
    wc.lpszMenuName		= 0;
    wc.lpszClassName	= TEXT("ChildrenToday");
    if(!RegisterClass(&wc))
		return FALSE;

	return TRUE;
}

LRESULT CALLBACK ChildrenWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TODAYDRAWWATERMARKINFO dwi;
	DWORD	dwIndex;
	HICON	hIcon;
	HBRUSH	hbrSEL;
	PROGRAMDATA	*pTemp;
	RECT	rcItem;

	switch (message) 
	{
		case WM_TIMER:
			OnChildrenTimer(hWnd,wParam);
			break;
		case WM_CREATE:
			OnChildrenCreate(hWnd);
			break;
        case WM_ERASEBKGND:
            //We return true here since we handle our own background painting.
			hdc = (HDC)wParam;
			dwi.hdc = hdc;
			GetClientRect(hWnd, &dwi.rc);
			dwi.hwnd = hWnd;
			SendMessage(g_hWndParent, TODAYM_DRAWWATERMARK, 0,(LPARAM)&dwi);
            return TRUE;
		case WM_PAINT:
            //Paint like you would in any other application.
			hdc = BeginPaint(hWnd, &ps);
			OnChildrenPaint(hWnd,hdc);
			EndPaint(hWnd, &ps);
			break; 
		case WM_NOTIFY:
			OnChildrenNotify(hWnd,wParam,lParam);
			break;
		case WM_CONTEXTMENU:
			OnChildrenContext(hWnd,wParam,lParam);
			break;
		case WM_DESTROY:
			break;
		case WM_SETTINGCHANGE:
			if( SETTINGCHANGE_RESET == wParam)
			{
			}
			break;
		case WM_SIZE:
			break;
		case WM_DRAWITEM:
			LPDRAWITEMSTRUCT lpdis; 
			lpdis = (LPDRAWITEMSTRUCT)lParam;

			if (lpdis->CtlType == ODT_BUTTON)
			{	
				dwi.hdc = lpdis->hDC;
				GetClientRect(lpdis->hwndItem, &dwi.rc);		
				dwi.hwnd = lpdis->hwndItem;
				SendMessage(g_hWndParent, TODAYM_DRAWWATERMARK, 0,(LPARAM)&dwi);

				if(lpdis->CtlID == ID_TASK_UP || lpdis->CtlID == ID_TASK_DOWN ||
					lpdis->CtlID == ID_TASK_ADD||lpdis->CtlID == ID_TASK_DELETE||
					lpdis->CtlID == ID_TASK_EDIT)
				{
					dwIndex = lpdis->CtlID - ID_TASK_UP;
					if ((lpdis->itemAction | ODA_SELECT) && (lpdis->itemState & ODS_SELECTED))
					{
						FillRect(lpdis->hDC,&lpdis->rcItem,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_UP+dwIndex));
					}
					else
					{
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_UP+dwIndex));
					}
				}
				else if(lpdis->CtlID == ID_APP_LEFT||lpdis->CtlID == ID_APP_RIGHT)
				{
					dwIndex = lpdis->CtlID - ID_APP_LEFT;
					if ((lpdis->itemAction | ODA_SELECT) && (lpdis->itemState & ODS_SELECTED))
					{
						FillRect(lpdis->hDC,&lpdis->rcItem,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_APP_LEFT+dwIndex));
					}
					else
					{
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_APP_LEFT+dwIndex));
					}
				}
				else
				{
					dwIndex = lpdis->CtlID - ID_DEVICE_COMMAND;
					if ((lpdis->itemAction | ODA_SELECT) && (lpdis->itemState & ODS_SELECTED))
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_SUSPEND_DOWN+dwIndex));
					else
						hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_SUSPEND+dwIndex));
				}

				DrawIcon(lpdis->hDC,0,0,hIcon);
				if(hIcon)
					DestroyIcon(hIcon);
			}
			else if (lpdis->CtlType == ODT_LISTVIEW)
			{	
				hdc = lpdis->hDC;
				hbrSEL = CreateSolidBrush (GetSysColor(COLOR_HIGHLIGHT));

				if ((lpdis->itemAction | ODA_SELECT) && (lpdis->itemState & ODS_SELECTED))
				{
					FillRect(hdc, &lpdis->rcItem,hbrSEL);
					DrawText(hdc,L"fdfd",-1,&lpdis->rcItem,DT_CENTER);
				}
				else
					DrawText(hdc,L"fdfd",-1,&lpdis->rcItem,DT_CENTER);

				DeleteObject (hbrSEL);
			}
			else
			{
				OnHandMenuDrawItem(hWnd,lpdis);
			}
			break;
		case WM_MEASUREITEM:

			LPMEASUREITEMSTRUCT lpmi;
			lpmi = (LPMEASUREITEMSTRUCT)lParam;

			if (lpmi->CtlType == ODT_BUTTON)
			{
				lpmi->itemWidth = BUTTON_WIDTH;
				lpmi->itemHeight = BUTTON_HEIGHT;
			}
			else if (lpmi->CtlType == ODT_LISTVIEW)
			{
				lpmi->itemHeight = 24;
			}
			else
			{
				if(lpmi->itemID == ID_TASKAPP_DETAIL)
				{
					SystemParametersInfo(SPI_GETWORKAREA, NULL, &rcItem, FALSE);
					lpmi->itemWidth = rcItem.right;
					lpmi->itemHeight = 11;
				}
				else
				{
					lpmi->itemWidth = 100;
					lpmi->itemHeight = 18;
				}
			}
			return (INT_PTR)TRUE;
			break;
		case WM_COMMAND:
			OnChildrenCommand(hWnd,wParam,lParam);
			break;
		case WM_LBUTTONDOWN:
			if(hWnd == m_hChildren[2])
				OnHandleChildrenDown(hWnd,wParam,lParam);
			else if(hWnd == m_hChildren[3])
				OnHandlePage4Down(hWnd,wParam,lParam);
			else if(hWnd == m_hChildren[0])
				OnHandlePage1Down(hWnd,wParam,lParam);
			else if(hWnd == m_hClock)
			{
				OnHandleClockDown(hWnd,wParam,lParam);
			}
			else
				;
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

void		OnChildrenPaint(HWND hWnd,HDC hdc)
{
	if(hWnd == m_hChildren[0])
		PaintPage1(hWnd,hdc);
	else if(hWnd == m_hChildren[1])
		PaintPage2(hWnd,hdc);
	else if(hWnd == m_hChildren[2])
		PaintPage3(hWnd,hdc);
	else if(hWnd == m_hChildren[3])
		PaintPage4(hWnd,hdc);
	else if(hWnd == m_hClock)
		PaintClock(hWnd,hdc);
}

void	OnHandleCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	DWORD	dwIndex = LOWORD(wParam) - ID_BASE_COMMAND;

	//ShowWindow(m_hChildren[dwIndex],SW_SHOW);

	switch (dwIndex)
	{
	case 0:
		//ShowWindow(m_hChildren[1],SW_HIDE);
		//ShowWindow(m_hChildren[2],SW_HIDE);
		//ShowWindow(m_hChildren[3],SW_HIDE);
		m_dwCurrentForm = 0;
		break;
	case 1:
		//ShowWindow(m_hChildren[0],SW_HIDE);
		//ShowWindow(m_hChildren[2],SW_HIDE);
		//ShowWindow(m_hChildren[3],SW_HIDE);
		m_dwCurrentForm = 1;
		break;
	case 2:
	//	ShowWindow(m_hChildren[0],SW_HIDE);
	//	ShowWindow(m_hChildren[1],SW_HIDE);
	//	ShowWindow(m_hChildren[3],SW_HIDE);
		m_dwCurrentForm = 2;
		break;
	case 3:
	//	ShowWindow(m_hChildren[0],SW_HIDE);
	//	ShowWindow(m_hChildren[1],SW_HIDE);
	//	ShowWindow(m_hChildren[2],SW_HIDE);
		m_dwCurrentForm = 3;
		break;
	default:
		break;
	}

	InvalidateRect(hWnd,NULL,TRUE);
	UpdateWindow(hWnd);
}

void		OnChildrenCreate(HWND hWnd)
{
}
void		OnChildrenCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	RECT	rc;
	DWORD	dwError;
	HANDLE	hProcess;
	DWORD	dwProcessId;
	HWND	hWndFore;
	DWORD	dwIndex = LOWORD(wParam) - ID_DEVICE_COMMAND;
	switch(dwIndex)
	{
	case 0:
		//keybd_event(VK_OFF,0,KEYEVENTF_SILENT,0);
		//keybd_event(VK_OFF,0,KEYEVENTF_SILENT | KEYEVENTF_KEYUP,0);
		SetSystemPowerState(NULL,POWER_STATE_IDLE,POWER_FORCE);
		break;
	case 1:
		SetSystemPowerState(NULL,POWER_STATE_OFF,POWER_FORCE);
		break;
	case 2:
		SetSystemPowerState(NULL,POWER_STATE_RESET,POWER_FORCE);

⌨️ 快捷键说明

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