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

📄 sysinfo.c

📁 MiniWinOuterSM MiniWinOuterSM
💻 C
字号:
#include"dvbutils.h"

#define IDC_SYSINFOSET 111
#define IDC_SYSINFOCOMHELP 112
#define IDC_SYSINFOWINHELP 113
#define IDC_SYSINFOTITLE 114

extern HWND ZolCreateHardWareInfoMenu(void);
extern HWND ZolCreateSoftWareInfoMenu(void);
extern HWND 	ZolCreateCaInfoMenu(void);
extern HWND 	ZolCreateMailInfoMenu(void);
extern HWND ZolCreateAccInfoMenu(void);
static DoAction(int idx)
{
	switch(idx){
	/*case 0:w=ZolCreateHardWareInfoMenu();break;
	case 1:w=ZolCreateSoftWareInfoMenu();break;*/
	case 2:CreateCaInfoWindow();break;
	case 3:CreateMailInfoWindow();break;
	case 4:CreateAccreditInfoMenu();break;
	}
}
static LRESULT WINAPI SysInfoProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	
	switch(msgID)
	{
//		case WM_CTLCOLORSTATIC:
		case WM_COMMAND:
			switch(wParam)
			case MAKELONG(IDC_SYSINFOSET,LBN_DBLCLK):
				DoAction(SendMessage((HWND)lParam,LB_GETCURSEL,0,0));
				break;
			case MAKELONG(IDC_SYSINFOSET,LBN_SELCHANGE):
			{
				INT idx=SendMessage(GetDlgItem(hwnd, IDC_SYSINFOSET),LB_GETCURSEL,0,0);
				switch(idx)
				{
					case 0:
						SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示机顶盒硬件信息");
						break;
					case 1:
						SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示机顶盒软件信息");break;
					case 2:
						SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示CA信息");break;
					case 3:
						SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示邮件信息");break;
					case 4:
						SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示授权信息");break;
					default:
						break;
				}
				InvalidateRect(GetDlgItem(hwnd, IDC_SYSINFOCOMHELP), NULL, TRUE);
			}
			break;
			
		case WM_DRAWITEM: 
			{
				DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
				char text[128];
				HDC hdc=(HDC)ds->hDC;
				RECT rc=ds->rcItem,rc1;
				HBRUSH hb,hb1=CreateSolidBrush(RGB(160,190,222));
				HRGN hrgn = CreateRoundRectRgn(rc.left, rc.top, rc.right,rc.bottom, 15,15);
				rc1=rc;rc1.left+=50;
				if(ds->CtlType ==ODT_LISTBOX)
				{
					if(ds->itemState&(ODS_SELECTED|ODS_FOCUS))
					{
						hb = CreateSolidBrush(RGB(211,150,35));
						FillRgn(hdc,hrgn,hb);
						FrameRgn(hdc, hrgn, hb1, 2, 2);
						Ellipse(hdc, rc.left+15, rc.top+8, rc.left+25,rc.bottom-16);
					}else{  
						hb = CreateSolidBrush(RGB(32,64,128));
						FillRgn(hdc,hrgn,hb);
						FrameRgn(hdc, hrgn, hb1, 2, 2);
						Ellipse(hdc, rc.left+15, rc.top+8, rc.left+25,rc.bottom-16);						
					}
					SetTextColor(hdc,(ds->itemState&ODS_SELECTED)?RGB(0,0,0):RGB(255,255,255));
					DeleteObject((HGDIOBJ)hrgn);
					SendMessage(ds->hwndItem,LB_GETTEXT,ds->itemID,(LPARAM)text);
					SetBkMode(hdc, TRANSPARENT);
					DrawText(hdc,text,sizeof(text),&rc1,DT_LEFT|DT_VCENTER|DT_SINGLELINE);
					DeleteObject((HGDIOBJ)hb);
					DeleteObject((HGDIOBJ)hb1);					
			}else if(ds->CtlType == ODT_STATIC)	{
					HBRUSH hbr;
					RECT rc1=rc;
					rc1.right -= 10;
					hbr = CreateSolidBrush(RGB(58, 110, 165));
					hb = CreateSolidBrush(RGB(32,64,128));
					FillRect(hdc, &rc, hbr);
					FillRgn(hdc,hrgn,hb);
					FrameRgn(hdc, hrgn, hb1, 2, 2);
					DeleteObject((HGDIOBJ)hrgn);
					SendMessage(ds->hwndItem,WM_GETTEXT,ds->itemID,(LPARAM)text);
					SetBkMode(hdc, TRANSPARENT);
					SetTextColor(hdc,RGB(255,255,255));
					DrawText(hdc,text,sizeof(text),&rc1,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
					DeleteObject((HGDIOBJ)hbr);
					DeleteObject((HGDIOBJ)hb);
					DeleteObject((HGDIOBJ)hb1);					
			}
			return 0;
		}

		case WM_VKEYTOITEM: 
			{
				UINT vkey = LOWORD(wParam);      // virtual-key code 
				INT nCaretPos = HIWORD(wParam); // caret position 
				HWND w; 
				if(vkey==VK_RETURN)
					DoAction(nCaretPos);

			}
			return -1;
		case WM_ERASEBKGND:
			FillRect((HDC)wParam,NULL,(HBRUSH)(COLOR_ACTIVEBORDER+2));
			return 1;
		default:
			return DefWindowProc(hwnd,msgID,wParam,lParam);
	}
	return 0;

}


HWND CreateSysInfoMenu(void)
{
	HWND SysInfoHwnd,menu,helpHwnd,winHelpHwnd,titleHwnd;
	
	SysInfoHwnd = CreateMainWindow("System Info", WS_TABSTOP, 0, 0, 720, 576, SysInfoProc);

	titleHwnd = CreateWindow("Static","系统信息",WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
						50,130,300,40,SysInfoHwnd,(HMENU)IDC_SYSINFOTITLE,NULL,NULL);

	menu=CreateWindow("Listbox",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|LBS_NOTIFY|LBS_HASSTRINGS|
											LBS_OWNERDRAWFIXED|LBS_WANTKEYBOARDINPUT|LBS_WRAP,
						50,130+40,300,200,SysInfoHwnd,(HMENU)IDC_SYSINFOSET,NULL,NULL);  

	helpHwnd=CreateWindow("Static",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
						50,130+200+40,600,70,SysInfoHwnd,(HMENU)IDC_SYSINFOCOMHELP,NULL,NULL);

	winHelpHwnd=CreateWindow("Static",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
						50,170+200+70,600,40,SysInfoHwnd,(HMENU)IDC_SYSINFOWINHELP,NULL,NULL);

	SendMessage(winHelpHwnd, WM_SETTEXT, 0, (LPARAM)"[↑↓]选择           [退出]关闭           [交替]返回");
//	SendMessage(helpHwnd,WM_SETTEXT,0,(LPARAM)"按确定键进入状态显示");
	SendMessage(menu,LB_SETCOLUMNWIDTH,30,0);
	SendMessage(menu,LB_SETITEMHEIGHT,0,40); 
	
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"机顶盒硬件信息");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"机顶盒软件信息");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"CA信息");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"邮件信息");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"授权信息");
	ShowWindow(SysInfoHwnd,SW_SHOW);
	return SysInfoHwnd;
}






⌨️ 快捷键说明

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