📄 mainmenu.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 + -