📄 demo_setting_sound.c
字号:
// CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 80, 71, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 290, 71, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "Alt:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC + 3, 20, 93, 60, 16, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 80, 101, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 290, 101, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "Balance:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC + 4, 20, 123, 60, 16, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 80, 131, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "99", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 290, 131, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "Plus:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC + 5, 20, 153, 60, 16, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 80, 161, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 290, 161, 30, 13, hTemp, 0);
//#else
CreateWindowEx (CTRL_STATIC, "声音:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC, 20, 8, 80, 16, hTemp, 0);
hCtrlWnd = CreateWindowEx (CTRL_BUTTON, "开", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP,
WS_EX_TRANSPARENT,
IDC_SOUND_ON, 80, 6, 40, 32, hTemp, 0);
hCtrlWnd = CreateWindowEx (CTRL_BUTTON, "关", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
WS_EX_TRANSPARENT,
IDC_SOUND_OFF, 130, 6, 40, 32, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "音量:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC + 1, 20, 33, 60, 16, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 80, 41, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "31", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 290, 41, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "低音:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC + 2, 20, 63, 60, 16, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 80, 71, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 290, 71, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "高音:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC + 3, 20, 93, 60, 16, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 80, 101, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 290, 101, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "平衡:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC + 4, 20, 123, 60, 16, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 80, 131, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "99", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 290, 131, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "增益:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC + 5, 20, 153, 60, 16, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 80, 161, 30, 13, hTemp, 0);
CreateWindowEx (CTRL_STATIC, "9", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
WS_EX_TRANSPARENT,
IDC_STATIC_RANGE, 290, 161, 30, 13, hTemp, 0);
//#endif UpdateWindow (hParent, TRUE);}static void SetCurSelect (HWND hParent, int updownflag, int *index){ int nTemp; nTemp = *index; if (updownflag ==1 || updownflag ==0) nOldIndex = *index; /*updownflag: 0:down , 1:up, other: not all */ if (updownflag == 1) { if (nTemp <= 0) nTemp = 5; else nTemp --; } else if (updownflag == 0) { if (nTemp < 0 || nTemp == 5) nTemp = 0; else nTemp ++; } SetWindowElementColorEx (GetDlgItem (hParent, IDC_STATIC + nTemp), FGC_CONTROL_NORMAL, RGB2Pixel (HDC_SCREEN, 255, 0, 0)); if (nOldIndex >= 0 && nOldIndex != nTemp) SetWindowElementColorEx (GetDlgItem (hParent, IDC_STATIC + nOldIndex), FGC_CONTROL_NORMAL, RGB2Pixel (HDC_SCREEN, 0, 0, 0)); UpdateWindow (hParent, TRUE); *index = nTemp;}static void SetControlValue (HWND hParent, int leftrightflag, int index){ int nStep; int nPos; skin_head_t *pskin; sie_slider_t slider_info; if (index < 0) return; /*leftrightflag !=0 : left*/ if (leftrightflag){ if (index == 0) SendMessage (GetDlgItem (hParent, IDC_SOUND_ON), BM_SETCHECK, TRUE, 0); else { pskin = get_window_skin (hParent); skin_get_slider_info (pskin, index, &slider_info); nStep = (slider_info.max_pos - slider_info.min_pos) /10; if (nStep == 0) nStep =1; nPos = slider_info.cur_pos - nStep; if (nPos < slider_info.min_pos) nPos = slider_info.min_pos; skin_set_thumb_pos (pskin, index, nPos); } } else{ if (index == 0) SendMessage (GetDlgItem (hParent, IDC_SOUND_OFF), BM_SETCHECK, TRUE, 0); else{ pskin = get_window_skin (hParent); skin_get_slider_info (pskin, index, &slider_info); nStep = (slider_info.max_pos - slider_info.min_pos) /10; if (nStep == 0) nStep =1; nPos = slider_info.cur_pos + nStep; if (nPos > slider_info.max_pos) nPos = slider_info.max_pos; skin_set_thumb_pos (pskin, index, nPos); } } UpdateWindow (hParent, TRUE);}static int soundWinProc (HWND hWnd, int message, WPARAM wparam, LPARAM lparam){ //extern BITMAP bmSettingIcon; switch (message){ case MSG_CREATE: init_bitmap_array (); init_sound_controlbar (); create_sound_controlbar (hWnd); init_sound_setting (); sound_create_control (hWnd); break; case MSG_SIZECHANGING: { RECT* rcResult = (RECT*)lparam; rcResult->top = 0; rcResult->left = 0; rcResult->right = 320; rcResult->bottom = 240; return 0; } case MSG_LBUTTONDOWN: if (LOWORD(lparam) > 298 && HIWORD(lparam) < 24) SendMessage (hWnd, MSG_CLOSE, 0, 0); break; case MSG_PAINT: { HDC hDC; hDC = BeginPaint (hWnd); //SetBrushColor (hDC, RGB2Pixel (HDC_SCREEN, 222, 251, 255)); SetBrushColor (hDC, RGB2Pixel (HDC_SCREEN, 111, 193, 180)); FillBox (hDC, 0, 0, 320, 24); //FillBox (hDC, 0, 216, 320, 24);
SetBkMode (hDC, BM_TRANSPARENT);
//#ifdef MGDEMO_ENGLISH
// TextOut (hDC, 2, 5, "Audio Setting");
//#else
TextOut (hDC, 2, 5, "音频设置");
//#endif draw_caption_bar(hDC, hWnd); //FillBoxWithBitmap (hDC, 2, 4, 0, 0, &bmSettingIcon); EndPaint (hWnd, hDC); break; } case MSG_KEYDOWN: switch (wparam) { case SCANCODE_CURSORBLOCKLEFT: SetControlValue (hSkin, 1, nCurIndex); break; case SCANCODE_CURSORBLOCKRIGHT: SetControlValue (hSkin, 0, nCurIndex); break; case SCANCODE_CURSORBLOCKDOWN: SetCurSelect (hSkin, 0, &nCurIndex); break; case SCANCODE_CURSORBLOCKUP: SetCurSelect (hSkin, 1, &nCurIndex); break; case SCANCODE_ESCAPE: SendMessage (hWnd, MSG_CLOSE, 0, 0); break; } break; case MSG_COMMAND: { break; } case MSG_CLOSE: destroy_sound_controlbar (); destroy_sound_setting (); DestroyMainWindow (hWnd); //PostQuitMessage (hWnd); return 0; } //return FH_DefaultAppWinProc (hWnd, message, wparam, lparam, &soundWndInfo); return DefaultMainWinProc (hWnd, message, wparam, lparam);}static int init_create_sound_win (HWND hHosting){ MAINWINCREATE CreateInfo; HWND hWnd; CreateInfo.dwStyle = WS_VISIBLE;
//#ifdef MGDEMO_ENGLISH
// CreateInfo.spCaption = "Audio Setting";
//#else
CreateInfo.spCaption = "音频设置";
//#endif CreateInfo.dwExStyle = WS_EX_TOPMOST; CreateInfo.hMenu = 0; CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = soundWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = 320; CreateInfo.by = 240; //CreateInfo.iBkColor = RGB2Pixel (HDC_SCREEN, 0x86, 0x99, 0xcc); //CreateInfo.iBkColor = RGB2Pixel (HDC_SCREEN, 198, 205, 242); CreateInfo.iBkColor = RGB2Pixel (HDC_SCREEN, 222, 251, 255); CreateInfo.dwAddData = 0; CreateInfo.hHosting = hHosting; hWnd = CreateMainWindow (&CreateInfo); if(hWnd == HWND_INVALID) { printf ("--------create_sound_win failure\n"); return 1; } hSoundSet = hWnd; ShowWindow(hWnd, SW_SHOWNORMAL); return 0; }void create_sound_set_win (HWND hWnd){ if(!sound_win_created){ sound_win_created = 1; init_create_sound_win (hWnd); }else{ SendMessage (hSoundSet, MSG_CLOSE, 0, 0); init_create_sound_win (hWnd); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -