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

📄 mainmenu.c

📁 MiniWinOuterSM MiniWinOuterSM
💻 C
字号:
// mainMenu.c: implementation of the mainMenu class.
//
//////////////////////////////////////////////////////////////////////

#include"dvbutils.h"
#include "PrTuner.h"
#include "games.h"    
#include "Prmem.h"
#define IDC_OPTIONS 10
#define IDC_MENU	20
#define IDC_EDIT	30
#include"imagelist.h"
HIMAGELIST himgs;
void*reshandle=0;
static void DoAction(int idx)
{
	switch(idx){
	case 0:CreateFavoriteWnd();break;
	case 1:CreateEpgWnd();break;
	case 2:CreateNvodWnd();break;
	case 3:/*Browser*/break;//GAME
	case 4:CreateSysInfoMenu();break;
	case 5:CreateSysSetWindow();	break;
	}
}
static LRESULT WINAPI MenuWndProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	switch(msgID)
	{
	case WM_COMMAND:
		switch(wParam){
		case MAKELONG(IDC_MENU,LBN_DBLCLK):
				DoAction(SendMessage((HWND)lParam,LB_GETCURSEL,0,0));
				break;
		}break;
	case WM_DRAWITEM:
		if(wParam==IDC_MENU){
			DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
			char text[128];
			HDC hdc=(HDC)ds->hDC;
			RECT rc=ds->rcItem;
			HRGN hrgn=CreateRoundRectRgn(rc.left,rc.top,rc.right,rc.bottom,16,16);
			if(ds->itemState&(ODS_SELECTED|ODS_FOCUS)){
				FillRgn(hdc,hrgn,(HBRUSH)(COLOR_ACTIVECAPTION+1));
				SetTextColor(hdc,GetSysColor(COLOR_HIGHLIGHTTEXT));
			}else{
				FillRgn(hdc,hrgn,(HBRUSH)(COLOR_WINDOW+1));
				SetTextColor(hdc,GetSysColor(COLOR_WINDOWTEXT));
			}
			FrameRgn(hdc,hrgn,(HBRUSH)(COLOR_ACTIVEBORDER+1),2,2);
			DeleteObject((HGDIOBJ)hrgn);
			SendMessage(ds->hwndItem,LB_GETTEXT,ds->itemID,(LPARAM)text);
			DrawText(hdc,text,-1,&rc,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
			return 1;
		}return 0;
	case WM_VKEYTOITEM:
		{
			UINT vkey = LOWORD(wParam);      // virtual-key code 
			UINT nCaretPos = HIWORD(wParam); // caret position 
			if(vkey!=VK_RETURN)return -1;
			DoAction(nCaretPos);
		}
		return -1;
	case WM_NCCALCSIZE:
		{
			LPRECT rc=(LPRECT) lParam;
			InflateRect(rc,-2,-2);
			rc->top+=30;
		}
		break;
	case WM_NCPAINT:
		{
			HDC hdc=GetWindowDC(hwnd);
			RECT rw,r1;
			CHAR caption[128];
			GetWindowRect(hwnd,&rw);
			OffsetRect(&rw,-rw.left,-rw.top);
			r1=rw;
			r1.bottom=r1.top+32;
			FillRect(hdc,&r1,(HBRUSH)(COLOR_WINDOWTEXT+1));
			MoveTo(hdc,0,0);
			LineTo(hdc,0,360);
			GetWindowText(hwnd,caption,128);
			SetBkMode(hdc,TRANSPARENT);
			SetTextColor(hdc,GetSysColor(COLOR_CAPTIONTEXT));
			DrawText(hdc,caption,-1,&r1,DT_LEFT|DT_VCENTER|DT_SINGLELINE);
			DrawEdge(hdc,&rw,BDR_RAISEDOUTER|BDR_SUNKENINNER,BF_RECT);
			DeleteDC(hdc);
		}break;
	case WM_PAINT:
		{
			PAINTSTRUCT ps;
			HDC hdc=BeginPaint(hwnd,&ps);
			HBRUSH hb=CreateSolidBrush(RGB(80,80,80));
			FillRect(hdc,NULL,hb);
			EndPaint(hwnd,&ps);
			DeleteObject((HGDIOBJ)hb);
		}break;
	default:return DefWindowProc(hwnd,msgID,wParam,lParam);
	}
	return 0;
}
HWND CreateMainMenu(void)
{
	HWND menuWnd,menu;
	int i;
	menuWnd=CreateMainWindow("MAIN MENU",WS_OVERLAPPEDWINDOW/*|WS_VSCROLL*/,
		100,50,520,400,MenuWndProc);
	menu=CreateWindow("Listbox",NULL,WS_TABSTOP|WS_VISIBLE|WS_BORDER|WS_CHILD|
		LBS_NOTIFY|LBS_WRAP|LBS_HASSTRINGS|LBS_OWNERDRAWFIXED|LBS_WANTKEYBOARDINPUT,
		0,0,260,282,menuWnd,(HMENU)IDC_MENU,NULL,NULL);
	CreateWindow("Static",NULL,WS_CHILD|WS_BORDER|WS_VISIBLE,
		0,282,520,60,menuWnd,(HMENU)188,NULL,NULL);
	CreateWindow("SYSLINK","<a> OK </a>Enter Option<a>[up down]</a>To Select",WS_CHILD|WS_VISIBLE|WS_TABSTOP,
		0,342,520,30,menuWnd,(HMENU)200,NULL,NULL);
	SendMessage(menu,LB_SETCOLUMNWIDTH,86,0);
	SendMessage(menu,LB_SETITEMHEIGHT,0,40);
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"Channel List");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"EPG");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"NVOD");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"Information");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"Games");
	SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"Setting ");
	ShowWindow(menuWnd,SW_SHOW);
	return menuWnd;
}
void TestOSD(void)
{
	HWND hdsk=GetDesktopWindow();
	static DWORD id,times=0;
	id=(id+1)%10;
	id=3;
	times++;
	PostMessage(hdsk,WM_COMMAND,(100+id), 0 );
	TRACE("TestOSD Timers=%d\r\n",times);
}

⌨️ 快捷键说明

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