📄 sysinfo.c
字号:
#include"dvbutils.h"
#define IDC_SYSINFOSET 111
#define IDC_SYSINFOCOMHELP 112
#define IDC_SYSINFOWINHELP 113
#define IDC_SYSINFOTITLE 114
extern HWND ZolCreateHardWareInfoMenu(void);
extern HWND ZolCreateSoftWareInfoMenu(void);
extern HWND ZolCreateCaInfoMenu(void);
extern HWND ZolCreateMailInfoMenu(void);
extern HWND ZolCreateAccInfoMenu(void);
static DoAction(int idx)
{
switch(idx){
/*case 0:w=ZolCreateHardWareInfoMenu();break;
case 1:w=ZolCreateSoftWareInfoMenu();break;*/
case 2:CreateCaInfoWindow();break;
case 3:CreateMailInfoWindow();break;
case 4:CreateAccreditInfoMenu();break;
}
}
static LRESULT WINAPI SysInfoProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
switch(msgID)
{
// case WM_CTLCOLORSTATIC:
case WM_COMMAND:
switch(wParam)
case MAKELONG(IDC_SYSINFOSET,LBN_DBLCLK):
DoAction(SendMessage((HWND)lParam,LB_GETCURSEL,0,0));
break;
case MAKELONG(IDC_SYSINFOSET,LBN_SELCHANGE):
{
INT idx=SendMessage(GetDlgItem(hwnd, IDC_SYSINFOSET),LB_GETCURSEL,0,0);
switch(idx)
{
case 0:
SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示机顶盒硬件信息");
break;
case 1:
SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示机顶盒软件信息");break;
case 2:
SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示CA信息");break;
case 3:
SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示邮件信息");break;
case 4:
SetDlgItemText(hwnd,IDC_SYSINFOCOMHELP,"显示授权信息");break;
default:
break;
}
InvalidateRect(GetDlgItem(hwnd, IDC_SYSINFOCOMHELP), NULL, TRUE);
}
break;
case WM_DRAWITEM:
{
DRAWITEMSTRUCT*ds=(DRAWITEMSTRUCT*)lParam;
char text[128];
HDC hdc=(HDC)ds->hDC;
RECT rc=ds->rcItem,rc1;
HBRUSH hb,hb1=CreateSolidBrush(RGB(160,190,222));
HRGN hrgn = CreateRoundRectRgn(rc.left, rc.top, rc.right,rc.bottom, 15,15);
rc1=rc;rc1.left+=50;
if(ds->CtlType ==ODT_LISTBOX)
{
if(ds->itemState&(ODS_SELECTED|ODS_FOCUS))
{
hb = CreateSolidBrush(RGB(211,150,35));
FillRgn(hdc,hrgn,hb);
FrameRgn(hdc, hrgn, hb1, 2, 2);
Ellipse(hdc, rc.left+15, rc.top+8, rc.left+25,rc.bottom-16);
}else{
hb = CreateSolidBrush(RGB(32,64,128));
FillRgn(hdc,hrgn,hb);
FrameRgn(hdc, hrgn, hb1, 2, 2);
Ellipse(hdc, rc.left+15, rc.top+8, rc.left+25,rc.bottom-16);
}
SetTextColor(hdc,(ds->itemState&ODS_SELECTED)?RGB(0,0,0):RGB(255,255,255));
DeleteObject((HGDIOBJ)hrgn);
SendMessage(ds->hwndItem,LB_GETTEXT,ds->itemID,(LPARAM)text);
SetBkMode(hdc, TRANSPARENT);
DrawText(hdc,text,sizeof(text),&rc1,DT_LEFT|DT_VCENTER|DT_SINGLELINE);
DeleteObject((HGDIOBJ)hb);
DeleteObject((HGDIOBJ)hb1);
}else if(ds->CtlType == ODT_STATIC) {
HBRUSH hbr;
RECT rc1=rc;
rc1.right -= 10;
hbr = CreateSolidBrush(RGB(58, 110, 165));
hb = CreateSolidBrush(RGB(32,64,128));
FillRect(hdc, &rc, hbr);
FillRgn(hdc,hrgn,hb);
FrameRgn(hdc, hrgn, hb1, 2, 2);
DeleteObject((HGDIOBJ)hrgn);
SendMessage(ds->hwndItem,WM_GETTEXT,ds->itemID,(LPARAM)text);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc,RGB(255,255,255));
DrawText(hdc,text,sizeof(text),&rc1,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
DeleteObject((HGDIOBJ)hbr);
DeleteObject((HGDIOBJ)hb);
DeleteObject((HGDIOBJ)hb1);
}
return 0;
}
case WM_VKEYTOITEM:
{
UINT vkey = LOWORD(wParam); // virtual-key code
INT nCaretPos = HIWORD(wParam); // caret position
HWND w;
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 CreateSysInfoMenu(void)
{
HWND SysInfoHwnd,menu,helpHwnd,winHelpHwnd,titleHwnd;
SysInfoHwnd = CreateMainWindow("System Info", WS_TABSTOP, 0, 0, 720, 576, SysInfoProc);
titleHwnd = CreateWindow("Static","系统信息",WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
50,130,300,40,SysInfoHwnd,(HMENU)IDC_SYSINFOTITLE,NULL,NULL);
menu=CreateWindow("Listbox",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|LBS_NOTIFY|LBS_HASSTRINGS|
LBS_OWNERDRAWFIXED|LBS_WANTKEYBOARDINPUT|LBS_WRAP,
50,130+40,300,200,SysInfoHwnd,(HMENU)IDC_SYSINFOSET,NULL,NULL);
helpHwnd=CreateWindow("Static",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
50,130+200+40,600,70,SysInfoHwnd,(HMENU)IDC_SYSINFOCOMHELP,NULL,NULL);
winHelpHwnd=CreateWindow("Static",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,
50,170+200+70,600,40,SysInfoHwnd,(HMENU)IDC_SYSINFOWINHELP,NULL,NULL);
SendMessage(winHelpHwnd, WM_SETTEXT, 0, (LPARAM)"[↑↓]选择 [退出]关闭 [交替]返回");
// 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)"CA信息");
SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"邮件信息");
SendMessage(menu,LB_ADDSTRING,0,(LPARAM)"授权信息");
ShowWindow(SysInfoHwnd,SW_SHOW);
return SysInfoHwnd;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -