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

📄 systemsetting.c

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

#define IDC_SYSSET 111
#define IDC_SYSCOMHELP 112
#define IDC_SYSWINHELP 113
#define IDC_SYSTITLE 114

#define SYSSET_POSITION 2*1024*1024-2048
#define SYNC_DATA 0xB8B8B8B8
#define IDC_SCREENTYPE	20
#define IDC_VIIDEOTYPE	21
#define IDC_TRANS		22
#define IDC_TIMEZONE	23
#define IDC_LANGUAGE	24
HWND sysSetWnd;

static char*Languages[][2]={{"Chinese","chi"},{"Chinese/TW","cht"},{"English","eng"}};
static char*modulations[]={"not defined","16-QAM","32-QAM","64-QAM","128-QAM","256-QAM"};
static LRESULT WINAPI MyWndProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	switch(msgID){
	case WM_COMMAND:
		switch(wParam){
		case 0:break;
		}break;
	default:return DefWindowProc(hwnd,msgID,wParam,lParam);
	}
	return 0;
}
int SaveSysSetting(void)
{
	int idx;
	unsigned char buf[1024];
	UINT *sync=(UINT*)buf;
	*sync=SYNC_DATA;
/*	sysSetting.ScreenType=SendMessage(GetDlgItem(sysSetWnd,20));
	sysSetting.Transparency=GetItemIndex(GetDlgItem(sysSetWnd,21));
	sysSetting.TimeZone=GetItemIndex(GetDlgItem(sysSetWnd,22));
	if((idx=GetItemIndex(GetDlgItem(sysSetWnd,23)))>=0);
		memcpy(sysSetting.LocalLanguage,Languages[idx][1],3);
	if((idx=GetItemIndex(GetDlgItem(sysSetWnd,24)))>=0)
		memcpy(sysSetting.AudioLanguage,Languages[idx][1],3);*/
	return 0;
}

HWND CreateSysParamsSetWindow(void)
{
	int i;
	HWND hc;
	HWND wnd=CreateMainWindow("System Setting",WS_VISIBLE|WS_OVERLAPPEDWINDOW,80,120,460,250,MyWndProc);

	CreateWindow("Static","Menu Transparency",WS_VISIBLE|WS_CHILD|SS_RIGHT,
		10,90,220,30,wnd,(HMENU)3,NULL,NULL); 
	
	CreateWindow("Select","Screen Type",WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_LABELRIGHT|OPS_SHOWARROWALWAYS|
		WS_BORDER,10,10,440,30,wnd,(HMENU)IDC_SCREENTYPE,NULL,NULL); //screen type
	CreateWindow("Select","Video Type",WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_LABELRIGHT|
		WS_BORDER,10,50,440,30,wnd,(HMENU)IDC_VIIDEOTYPE,NULL,NULL);//Video Type
	CreateWindow("TrackBar",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|
		WS_BORDER,250,95,200,20,wnd,(HMENU)IDC_TRANS,NULL,NULL);//menu transparency
	CreateWindow("Select","Time Adjustment",WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_LABELRIGHT|
		WS_BORDER,10,130,440,30,wnd,(HMENU)IDC_TIMEZONE,NULL,NULL);//time adjustment
	CreateWindow("Select","Language",WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_LABELRIGHT|
		WS_BORDER,10,170,440,30,wnd,(HMENU)IDC_LANGUAGE,NULL,NULL);//menu language
	
	SendMessage(GetDlgItem(wnd,IDC_SCREENTYPE),OPT_ADDSTRING,0,(LPARAM)"4:3");
	SendMessage(GetDlgItem(wnd,IDC_SCREENTYPE),OPT_ADDSTRING,0,(LPARAM)"16:9");
	SendDlgItemMessage(wnd,IDC_SCREENTYPE,OPT_SETCURSEL,0,0);
	SendMessage(GetDlgItem(wnd,IDC_VIIDEOTYPE),OPT_ADDSTRING,0,(LPARAM)"Auto");
	SendMessage(GetDlgItem(wnd,IDC_VIIDEOTYPE),OPT_ADDSTRING,0,(LPARAM)"PAL");
	SendMessage(GetDlgItem(wnd,IDC_VIIDEOTYPE),OPT_ADDSTRING,0,(LPARAM)"NTSC");
	SendDlgItemMessage(wnd,IDC_VIIDEOTYPE,OPT_SETCURSEL,0,0);
	
	SendMessage(GetDlgItem(wnd,IDC_TRANS),TBM_SETPOS,1,75);
	for(i=-12;i<=12;i++){
		char str[16];
		sprintf(str,"GMT%+02d:00",i);
		SendMessage(GetDlgItem(wnd,IDC_TIMEZONE),OPT_ADDSTRING,0,(LPARAM)str);
	}
	for(i=0;i<sizeof(Languages)/(sizeof(char*)*2);i++){
		SendMessage(GetDlgItem(wnd,IDC_LANGUAGE),OPT_ADDSTRING,0,(LPARAM)Languages[i][0]);
	}

	//LoadSysSetting();
	//UpdateWindow();
	ShowWindow(wnd,SW_SHOWNORMAL);
	return wnd;
}
static void DoAction(int idx)
{
	switch(idx)
	{
	case 0:SearchChannelWnd();break;
	case 1:CreateSysParamsSetWindow();break;
	case 2:CreateFavoriteEditWnd();break;
	case 3:CreateEpgWnd();break;
		//case 4:CreateAudioView();break;
	case 4:break;
	}
}
static LRESULT WINAPI SystemSetProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	
	switch(msgID)
	{
		//case WM_CTLCOLORSTATIC:
		case WM_COMMAND:
			switch(wParam)
			{
			case MAKELONG(IDC_SYSSET,LBN_SELCHANGE):
				switch(SendMessage((HWND)lParam,LB_GETCURSEL,0,0))
				{
					case 0:
						SetDlgItemText(hwnd,IDC_SYSCOMHELP,"按确定键进入频道搜索");
						break;
					case 1:
						SetDlgItemText(hwnd,IDC_SYSCOMHELP,"按确定键进入用户参数设置");break;
					case 2:
						SetDlgItemText(hwnd,IDC_SYSCOMHELP,"按确定键进入信号检测");break;
					case 3:
						SetDlgItemText(hwnd,IDC_SYSCOMHELP,"按确定键进入系统信息");break;
					case 4:
						SetDlgItemText(hwnd,IDC_SYSCOMHELP,"按确定键进入恢复出厂设置");break;
					default:
						break;
				}break;
			case MAKELONG(IDC_SYSSET,LBN_DBLCLK):
				DoAction(SendMessage((HWND)lParam,LB_GETCURSEL,0,0));
				break;
			}
			break;				
		case WM_DRAWITEM: 
			{
				DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
				char text[128];
				HDC hdc=(HDC)ds->hDC;
				RECT rc=ds->rcItem;
				HBRUSH hb;
				HBRUSH hbBorder=CreateSolidBrush(RGB(160,190,222));
				HRGN hrgn = CreateRoundRectRgn(rc.left, rc.top, rc.right,rc.bottom, 15,15);

				if(ds->CtlType==ODT_LISTBOX)
				{
					if(ds->itemState&(ODS_SELECTED|ODS_FOCUS)){
						hb = CreateSolidBrush(RGB(211,150,35));
					}else{  
						hb = CreateSolidBrush(RGB(32,64,128));
					}
					FillRgn(hdc,hrgn,hb);
					FrameRgn(hdc, hrgn, hbBorder, 2, 2);
					SetTextColor(hdc,(ds->itemState&ODS_SELECTED)?RGB(0,0,0):RGB(255,255,255));
					SendMessage(ds->hwndItem,LB_GETTEXT,ds->itemID,(LPARAM)text);
					SetBkMode(hdc, TRANSPARENT);
					DrawText(hdc,text,sizeof(text),&rc,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
					DeleteObject((HGDIOBJ)hb);
				}else if(ds->CtlType==ODT_STATIC){
					HBRUSH hbr;
					DWORD fmt;
					hbr=CreateSolidBrush(RGB(58, 110, 165));
					hb =CreateSolidBrush(RGB(32,64,128));
					FillRect(hdc, &ds->rcItem, hbr);
					FillRgn(hdc,hrgn,hb);
					FrameRgn(hdc,hrgn, hbBorder, 2, 2);
					SendMessage(ds->hwndItem,WM_GETTEXT,ds->itemID,(LPARAM)text);
					SetBkMode(hdc, TRANSPARENT);
					SetTextColor(hdc,RGB(255,255,255));
					fmt=DT_VCENTER|DT_SINGLELINE;
					switch(GetWindowLong(ds->hwndItem,GWL_STYLE)&3){
					case 0:fmt|=DT_LEFT;break;
					case 1:fmt|=DT_CENTER;break;
					case 2:fmt|=DT_RIGHT;break;
					}
					DrawText(hdc,text,sizeof(text),&ds->rcItem,fmt);
					DeleteObject((HGDIOBJ)hbr);
					DeleteObject((HGDIOBJ)hb);
				}
				DeleteObject((HGDIOBJ)hbBorder);
				DeleteObject((HGDIOBJ)hrgn);
				return 0;
		}
		
		case WM_MEASUREITEM:
			{
				MEASUREITEMSTRUCT *ms=(MEASUREITEMSTRUCT*)lParam;
				ms->itemHeight=40;
				PrDbgPrintf("###MessageBox ms->itemHeight=%d\n",ms->itemHeight);			
				return 0;
			}
		case WM_VKEYTOITEM: 
			{
				UINT vkey = LOWORD(wParam);      // virtual-key code 
				INT nCaretPos = HIWORD(wParam); // caret position 
				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 CreateSysSetWindow(void)
{
	HWND SysHwnd,menu,helpHwnd,winHelpHwnd,titleHwnd;
	
	SysHwnd = CreateMainWindow("System Set", WS_VISIBLE|WS_OVERLAPPEDWINDOW, 0, 0, 720, 576, SystemSetProc);

	titleHwnd = CreateWindow("Static","系统设置",WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW|SS_CENTER,
					50,130,300,40,SysHwnd,(HMENU)IDC_SYSTITLE,NULL,NULL);

	menu=CreateWindow("Listbox",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|LBS_NOTIFY|LBS_WRAP|LBS_HASSTRINGS|
					LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
					50,170,300,200,SysHwnd,(HMENU)IDC_SYSSET,NULL,NULL);

	helpHwnd=CreateWindow("Static",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW|SS_LEFT,
					50,170+200,600,70,SysHwnd,(HMENU)IDC_SYSCOMHELP,NULL,NULL);

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

	SetWindowText(winHelpHwnd,"[↑↓]选择           [退出]关闭           [交替]返回");
//	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)"信号检测");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"系统信息");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"恢复出厂设置"); 
	ShowWindow(SysHwnd,SW_SHOW);
	return SysHwnd;
}



⌨️ 快捷键说明

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