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

📄 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"
#include"Restest1.c"
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
		break;
	//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;
		}else if(wParam==188){
			DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
			RECT rc=ds->rcItem;
			FillRect(ds->hDC,&rc,(HBRUSH)(COLOR_ACTIVECAPTION+1));
			DrawText(ds->hDC,"Test",-1,&rc,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
		}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_ERASEBKGND:
		{
#define IDB_MP3JPG                        0x2EFE     /* D:\MiniWin\MacMP3.jpg */
#define IDB_AUTOLOGOGIF                   0x2EFF     /* D:\MiniWin\Auto_Logo.gif */
#define IDB_SKINJPG                       0x2F00     /* D:\MiniWin\jpgtest.jpg */
#define IDB_MP3PNG24                      0x2F01     /* D:\MiniWin\MacMP3.24BIT.png */
#define IDB_123GIF                        0x2F02     /* D:\MiniWin\0123.gif */
#define IDB_WINBMP                        0x2F03     /* D:\MiniWin\MacMP3.bmp */
#define IDB_MACBMP                        0x2F04     /* D:\MiniWin\MacMP3mac.bmp */
#define IDB_16SBMP                        0x2F05     /* D:\MiniWin\MacMP316.bmp */
#define IDB_1SBMP                         0x2F06     /* D:\MiniWin\MacMP31.bmp */			
#define IDB_BGIF1                         0x2F07     /* D:\MiniWin\bg_gif1.gif */
#define IDB_BGIF2                         0x2F08     /* D:\MiniWin\bg_gif.gif */		
#define IDI_IMAGEREADY                    0x2F09     /* D:\一套官方软件标志集\Adobe - ImageReady 7.0.ico */
#define IDI_PREMIERE                      0x2F0A     /* D:\一套官方软件标志集\Adobe - Premiere 6.5.ico */
			HBITMAP JPGTest(const char*fname);
			HBITMAP hobmp,hbmp;
			HDC hmdc=CreateCompatibleDC((HDC)wParam);
			HBRUSH hb;
			BITMAP bmp;
#define ICONSIZE 64
			HICON hico=(HICON)LoadImage(ResTest1,IDI_IMAGEREADY,IMAGE_ICON,ICONSIZE,ICONSIZE,0);
			hb=CreateSolidBrush(RGB(255,0,0));
			FillRect((HDC)wParam,NULL,(HBRUSH)(COLOR_INACTIVECAPTION+1));
			hbmp=(HBITMAP)LoadImage(ResTest1,MAKEINTRESOURCE(IDB_MP3PNG24),IMAGE_BITMAP,0,0,0);
			hobmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hbmp);
			GetObject((HGDIOBJ)hbmp,sizeof(BITMAP),&bmp);
			StretchBlt((HDC)wParam,260,60,64,64,hmdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
			//ImageList_Draw(himgs,0,(HDC)wParam,400,10,ILD_TRANSPARENT );
			//ImageList_Destroy(himgs);
			//BitBlt((HDC)wParam,260,0,bmp.bmWidth,bmp.bmHeight,hmdc,0,0,SRCCOPY);
			TransparentBlt((HDC)wParam,300+bmp.bmWidth,60,bmp.bmWidth/3,bmp.bmHeight/3,hmdc,
				0,0,bmp.bmWidth,bmp.bmHeight,RGB(0xff,0xff,0xff));
			TransparentBlt((HDC)wParam,300,60+bmp.bmHeight/2,bmp.bmWidth,bmp.bmHeight,hmdc,
				0,0,bmp.bmWidth,bmp.bmHeight,RGB(0xff,0xff,0xff));
			SelectObject(hmdc,(HGDIOBJ)hobmp);
			DrawIcon((HDC)wParam,330,65,hico);
			DrawIconEx((HDC)wParam,260,280,hico,ICONSIZE,ICONSIZE,0,NULL,DI_MASK);
			DrawIconEx((HDC)wParam,330,280,hico,ICONSIZE,ICONSIZE,0,NULL,DI_IMAGE);//|DI_MASK);
			DrawIconEx((HDC)wParam,400,280,hico,ICONSIZE,ICONSIZE,0,NULL,DI_IMAGE|DI_MASK);
			DeleteObject((HGDIOBJ)hbmp);
			DeleteDC(hmdc);
		}
		return 1;
/*	case WM_NCPAINT:
		{
			HDC hdc=GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
			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;*/
	default:return DefWindowProc(hwnd,msgID,wParam,lParam);
	}
	return 0;
}
HWND CreateMainMenu(void)
{
	HWND menuWnd,menu,hToolbar;
	menuWnd=CreateMainWindow("MAIN MENU",WS_OVERLAPPEDWINDOW/*|WS_VSCROLL*/,
		100,50,520,400,MenuWndProc);
	//SendMessage(menuWnd,WM_SETICON,ICON_SMALL,(LPARAM)LoadImage(ResTest1,0x2EEA,IMAGE_ICON,32,32,0));
	himgs=ImageList_LoadImage((HINSTANCE)ResTest1,MAKEINTRESOURCE(IDB_SKINJPG),
		32,1,RGB(0,0,0xFF),IMAGE_BITMAP,LR_LOADTRANSPARENT);
	menu=CreateWindow("Listbox",NULL,WS_TABSTOP|WS_VISIBLE|WS_BORDER|WS_CHILD|
		LBS_NOTIFY|LBS_WRAP|LBS_HASSTRINGS|LBS_OWNERDRAWFIXED|LBS_WANTKEYBOARDINPUT,
		0,46,260,282,menuWnd,(HMENU)IDC_MENU,NULL,NULL);
	CreateWindow("Static",NULL,WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_REALSIZEIMAGE,//|SS_CENTERIMAGE ,
		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);
	{
		TBBUTTON buttons2[] = {
			{0, 20, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{1, 21, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{2, 22, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{3, 23, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{4, 24, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{5, 25, TBSTATE_ENABLED, TBSTYLE_SEP, {0, }, 0, -1},
			{6, 26, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{0, 20, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{1, 21, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{2, 22, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{3, 23, TBSTATE_ENABLED, TBSTYLE_SEP, {0, }, 0, -1},
			{4, 24, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{5, 25, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{6, 26, TBSTATE_ENABLED, 0, {0, }, 0, -1},
			{0, 20, TBSTATE_ENABLED, 0, {0, }, 0, -1},
		};
		//CreateToolbar(menuWnd,WS_VISIBLE,888,7,ResTest1,IDB_SKINJPG,buttons2,16);
		CreateToolbarEx(menuWnd,WS_VISIBLE,888,7,ResTest1,IDB_SKINJPG,buttons2,16,32,32,32*7,32,sizeof(TBBUTTON));
	}
	SendDlgItemMessage(menuWnd,220,BM_SETIMAGE,IMAGE_BITMAP,LoadBitmap(ResTest1,IDB_AUTOLOGOGIF));
	SendDlgItemMessage(menuWnd,188,STM_SETIMAGE,IMAGE_BITMAP,LoadBitmap(ResTest1,IDB_SKINJPG));
	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);
	//himgs=ImageList_LoadBitmap((HINSTANCE)ResTest1,IDB_MP3JPG,64,4,RGB(0,0,0xFF));
	return menuWnd;
}


/*
How BitBlt transfer color image to (or from) monochrome image? 

1. From color to monochrome

   All pixels identical to the background (set by SetBkColor)
   of the color image will mapped to white(0) color in monochrome image,
   other pixels will be mapped to black(1) color.

2. From monochrome to color

   The white pixel(0) will be mapped to background color (set by SetBkColor)
   of the color image, the black pixel(1) will be mapped to text color (set 
   by SetTextColor) of the color image.
*/

⌨️ 快捷键说明

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