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

📄 installmenu.c

📁 MiniWinOuterSM MiniWinOuterSM
💻 C
字号:
// mainMenu.c: implementation of the mainMenu class.
//
//////////////////////////////////////////////////////////////////////
#include"osddesktop.h"
#include"osdwinuser.h"
//#include"osdwindows.h"
//#include"osdinternal.h"

//#include "installMenu.h"
/*#include"Favorite.h" 
#include"SatelliteEditor.h"
#include"SearchChannel.h"
#include"keyboard.h"
#include "epgWnd.h"
#include "PrTuner.h"
#include "games.h"    
#include "nvodWnd.h"      
#include "systemSetting.h"*/
//#define IDC_OPTIONS 10
//#define IDC_MENU	20
//#define IDC_EDIT	30

static LRESULT WINAPI InstlWndProc(HWND hWnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	switch(msgID){
	//case WM_NCCALCSIZE:break;
	//case WM_NCPAINT:return 0;
	 case WM_MEASUREITEM:
	  {
	  MEASUREITEMSTRUCT*mis=(MEASUREITEMSTRUCT*)lParam;;
			mis->CtlType    = ODT_MENU;
			mis->CtlID      = 0;
			//mis->itemID     = lpitem->wID;
			//mis->itemData   = lpitem->dwItemData;
			mis->itemHeight = 40;//ODitemheight;
			mis->itemWidth  = 150;
	  }break;
	 case WM_DRAWITEM:
	  {
	   DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
	   char text[128];
	   HDC hdc=(HDC)ds->hDC;
	   RECT rc=ds->rcItem;

	   SetTextColor(hdc,ds->itemState==ODS_SELECTED?RGB(255,0,0):RGB(0,255,0));
	   FillRect(hdc,&rc,ds->itemState==ODS_SELECTED?
		GetSysColorBrush(COLOR_HIGHLIGHT):GetSysColorBrush(COLOR_BTNFACE));
	   DrawText(hdc,"OwnerDrawItem\nMultiLine",-1,&rc,DT_VCENTER);
	   DrawEdge(hdc,&rc,BDR_RAISEDINNER,BF_RECT);
	  }break;
	case WM_KEYDOWN:
		switch(wParam){
		case VK_MENU:
			{
				HWND w=(HWND)CreateMainMenu();
				ShowWindow(w,SW_SHOWNORMAL);
			}break;
		case VK_UP:
			{
				HWND w=(HWND)CreateEPGPFWnd();
				ShowWindow(w,SW_SHOWNORMAL);
			}break;
		case VK_RETURN:CreateFavoriteWnd();break;
		case VK_ESCAPE:break;
		default:return DefWindowProc(hWnd,msgID,wParam,lParam);
		}break;

	case WM_RBUTTONUP:
		{
		HMENU hmenu=(HMENU)GetWindowLong(hWnd,GWL_USERDATA);
		POINT pt;
		pt.x=LOWORD(lParam);pt.y=HIWORD(lParam);
		MapWindowPoints(hWnd,NULL,&pt,1);//将窗口坐标转换成屏幕坐标
		TrackPopupMenu(hmenu,TPM_TOPALIGN|TPM_RIGHTBUTTON,
			pt.x,pt.y,0,hWnd,NULL);
		}break;
	case WM_COMMAND:
		switch(LOWORD(wParam)){
		case 100:CreateFavoriteWnd();break;
		case 101:CreateSysSetWindow();break;
		case 102:CreateFavoriteEditWnd();break;
		case 103:CreateEpgWnd();break;
		//case 104:CreateGameWnd();break;
		case 105:CreateNvodWnd();break;
		case 106:CreateSysConfigWnd();break;
		}break;
	case WM_DESTROY:
		{
			HMENU hmenu=(HMENU)GetWindowLong(hWnd,GWL_USERDATA);
			DestroyMenu(hmenu);
			DefWindowProc(hWnd,msgID,wParam,lParam);
		}break;
	default: return DefWindowProc(hWnd,msgID,wParam,lParam);
	}
	return 0;
}

static HMENU CreateInstallMenu(void)
{
	HMENU mnuDesk;
	MENUITEMINFO pmi;
	int i;
	char*mnustr[]={"Installation","System Setting","Channels","Games","System Information",NULL};
	char*popmnustr[]={"Dish Setting","Motorized Setting","Auto Scan","Blind Scan","Manual Scan","PID Scan",NULL};

	mnuDesk=CreatePopupMenu();
	memset(&pmi,0,sizeof(pmi));
	pmi.fMask = MIIM_ID | MIIM_TYPE | MIIM_DATA; 
	
	for(i=0;mnustr[i]!=NULL;i++){
		HMENU hsub;
		pmi.hSubMenu=0;
		pmi.fMask = MIIM_ID | MIIM_TYPE | MIIM_DATA; 
		//pmi.fType=mnustr[i][0]=='-'?MF_MENUBREAK:MFT_STRING;
		pmi.fType=mnustr[i][0]=='-'?MFT_SEPARATOR:MFT_STRING;
		if(i>8){
			int j;
			hsub=CreatePopupMenu();
			for(j=0;popmnustr[j]!=NULL;j++){
				//char str[128];
				//sprintf(str,"Sub menu item %d-%d  ",i,j+1);
				pmi.fMask=MIIM_ID | MIIM_TYPE | MIIM_DATA; 
				pmi.dwTypeData=(LPSTR)popmnustr[j];
				pmi.wID=100+i*20+j;
				InsertMenuItem(hsub,j,TRUE,&pmi);
			}
			pmi.hSubMenu=hsub;
			pmi.fMask|=MIIM_SUBMENU;
		}
		pmi.wID=100+i;
		pmi.dwTypeData=(LPSTR)mnustr[i];
		InsertMenuItem(mnuDesk,i,FALSE,&pmi);
	}
	return mnuDesk;
}

HWND CreateInstall(void)
{
	HWND hc,hc1;
	HWND hwndInstall;
	hwndInstall=CreateMainWindow("MAIN MENU",WS_VISIBLE|WS_OVERLAPPEDWINDOW/*|WS_VSCROLL*/,
		100,100,520,400,InstlWndProc);
	ShowWindow(hwndInstall,SW_SHOW);
	SetWindowLong(hwndInstall,GWL_USERDATA,(ULONG)CreateInstallMenu());

	return hwndInstall;
}

⌨️ 快捷键说明

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