📄 appsetting_slider.c
字号:
/*-------------------------------------------------------------------------------
// appSetting_slider
// appSetting_slider
// Create by jsguo 2005.10.3
--------------------------------------------------------------------------------*/
#include "../inc/nucleus.h"
#include "../inc/winconfig.h"
#include "MMI.h"
#include "../inc/windows.h"
//------------------------------------------------------------------------------
// 全局变量
int gnShowMenu_Setting_slider;
int gnselectItem_Setting_slider ;
#define SETTING_SLIDER_WIDTH 60
#define SETTING_TEXT_WIDTH 20
LRESULT CALLBACK VMSettingSliderProc(HWND,UINT,WPARAM,LPARAM);
int gMaxSettingSliderValue;
extern SLIDER_Obj gScrollBarSetting_Data_slider[20];
InitMWindow initMySetting_slider;
//Form gMyFormSetting_slider;
extern Form gMyFormSetting_slider;
CloseMWindow closeMySetting_slider;
//int SetSettingSlider(InitMWindow init,CloseMWindow close,Form FormDocumentList)
int SetSettingSlider(InitMWindow init,CloseMWindow close)
{
initMySetting_slider=init;
initMySetting_slider();
closeMySetting_slider=close;
return 1;
}
int MMI_SetSettingSliderMaxValue(int MaxSliderValue)
{
if(MaxSliderValue==0) return;
gMaxSettingSliderValue=MaxSliderValue;
PostMessage(GetActiveWindow(),WM_PAINT,0,0);
return 1;
}
int MMI_SetSettingSliderValue(int nSliderCount,int CurrentSliderValue)
{
gScrollBarSetting_Data_slider[nSliderCount].slnStartX=20;
gScrollBarSetting_Data_slider[nSliderCount].slnCurrentX=gScrollBarSetting_Data_slider[nSliderCount].slnStartX+CurrentSliderValue*SETTING_SLIDER_WIDTH/gMaxSettingSliderValue;
PostMessage(GetActiveWindow(),WM_PAINT,0,0);
return 1;
}
int MMI_GetSettingSliderSelectItem()
{
return gnselectItem_Setting_slider;
}
int WINAPI VMSettingSliderMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[]="SettingSliderApp";
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = (WNDPROC)VMSettingSliderProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =0;
wndclass.hIcon =0;
wndclass.hCursor =0;
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName = szAppName;
RegisterClass(&wndclass);
hwnd=CreateWindowEx(0L,
szAppName,
"SettingSlider",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
MAINFRAME_WIDTH_DEFAULT,
MAINFRAME_HEIGHT_DEFAULT,
NULL,
NULL,
NULL,
NULL);
// gScrollBarSetting_Data_slider[i].slnCurrentX=20;
gnselectItem_Setting_slider=0;
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
SLIDER_Obj gScrollBarSetting_slider={0x40c1ff,0xffff00,2,5,MAINFRAME_HEIGHT_DEFAULT-25,5,5};
//SLIDER_Obj gScrollBarSetting_Data_slider={/*0xa3138*/COLOR_SELECT,0xffff00,1,20,20+SETTING_SLIDER_WIDTH,10,20};
LRESULT CALLBACK VMSettingSliderProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect1;
int i,keyvalue,y;
int nSliderValue=0;
HBRUSH hBrush,hBgBrush;
switch (iMsg) {
case WM_CREATE:
gnShowMenu_Setting_slider = 1;
break;
case WM_PAINT:
hBrush = CreateSolidBrush(COLOR_SELECT);//0xa3138);//GetSysColor(COLOR_MENU));
hBgBrush = CreateSolidBrush(COLOR_NORMAL);
hdc=BeginPaint(hwnd,&ps);
if((gMyFormSetting_slider.MenuSize-2)!=0)
nSliderValue=(gScrollBarSetting_slider.slnEndX-gScrollBarSetting_slider.slnStartX)/(gMyFormSetting_slider.MenuSize-2);
else
nSliderValue=gScrollBarSetting_slider.slnEndX;
// rect1.left = 10;
rect1.top = 0;
rect1.bottom = LIST_HEIGHT_DEFAULT;
for( i = 0; i < gMyFormSetting_slider.MenuSize; i++)
{
gScrollBarSetting_Data_slider[i].slSliderColor=0xffff00;
gScrollBarSetting_Data_slider[i].slnStartX=20;
gScrollBarSetting_Data_slider[i].slnEndX=20+SETTING_SLIDER_WIDTH;
gScrollBarSetting_Data_slider[i].slnDirection=1;
rect1.left = 10;
rect1.right = MAINFRAME_WIDTH_DEFAULT;
if(gnselectItem_Setting_slider == i)
{
FillRect(hdc,&rect1,hBrush);
gScrollBarSetting_Data_slider[i].slBkColor=COLOR_SELECT;//0xa3138;
}
else
{
FillRect(hdc,&rect1,hBgBrush);
gScrollBarSetting_Data_slider[i].slBkColor=COLOR_NORMAL;
}
if(gnselectItem_Setting_slider <LIST_DATA_DEFAULT)
{
rect1.left = MAINFRAME_WIDTH_DEFAULT-20-SETTING_TEXT_WIDTH;
rect1.right = MAINFRAME_WIDTH_DEFAULT-20;
DrawText(hdc,gMyFormSetting_slider.MenuList[i].MenuName,-1,&rect1,
DT_SINGLELINE|DT_LEFT);
rect1.top += LIST_HEIGHT_DEFAULT+1;
rect1.bottom += LIST_HEIGHT_DEFAULT+1;
}
else
{
for(y=6;rect1.bottom<(MAINFRAME_HEIGHT_DEFAULT-MENU_HEIGHT_DEFAULT);rect1.bottom+=LIST_HEIGHT_DEFAULT+1,y--)
{
rect1.left = MAINFRAME_WIDTH_DEFAULT-20-SETTING_TEXT_WIDTH;
rect1.top=rect1.bottom-LIST_HEIGHT_DEFAULT;
if(y == 0)
{
FillRect(hdc,&rect1,hBrush);
gScrollBarSetting_Data_slider[i].slBkColor=0xa3138;
}
else
{
FillRect(hdc,&rect1,hBgBrush);
gScrollBarSetting_Data_slider[i].slBkColor=COLOR_NORMAL;
}
rect1.right = MAINFRAME_WIDTH_DEFAULT-20;
DrawText(hdc,gMyFormSetting_slider.MenuList[gnselectItem_Setting_slider-y].MenuName,-1,&rect1,
DT_SINGLELINE|DT_LEFT);//|DT_VRIGHT);
}
i = gMyFormSetting_slider.MenuSize;
}
gScrollBarSetting_Data_slider[i].slnSliderY=rect1.top - LIST_HEIGHT_DEFAULT/2;
/* if(gMySliderCount==i)
gScrollBarSetting_Data_slider[i].slnCurrentX=gScrollBarSetting_Data_slider[gMySliderCount].slnCurrentX;
else
gScrollBarSetting_Data_slider[i].slnCurrentX=gScrollBarSetting_Data_slider[i].slnStartX;
*/
DisplaySlider(hwnd,gScrollBarSetting_Data_slider[i]);
}
gScrollBarSetting_slider.slnCurrentX=nSliderValue*gnselectItem_Setting_slider;
DisplaySlider(hwnd,gScrollBarSetting_slider);
DeleteObject(hBgBrush);
DeleteObject(hBrush);
EndPaint(hwnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_KEYUP:
keyvalue = wParam - 49;
if(keyvalue == KEY_CANCEL)
{
if(closeMySetting_slider != NULL)
{
closeMySetting_slider();
}
PostMessage(hwnd,WM_CLOSE,0,0);
}
//if((keyvalue >= 0) && (keyvalue <= 4)) // 方向键
switch(keyvalue)
{
gnselectItem_Setting_slider=gMyFormSetting_slider.CurrentMenuItem;
case KEY_UP:
gnselectItem_Setting_slider --;
break;
case KEY_DOWN:
gnselectItem_Setting_slider ++;
break;
case KEY_LEFT:
User_SettingSliderLeft();
break;
case KEY_RIGHT:
User_SettingSliderRight();
break;
case KEY_OK:
//
break;
default:
break;
}
if(gnselectItem_Setting_slider < 0)
gnselectItem_Setting_slider = gMyFormSetting_slider.MenuSize - 1;
else if(gnselectItem_Setting_slider >= gMyFormSetting_slider.MenuSize)
gnselectItem_Setting_slider = 0;
gMyFormSetting_slider.CurrentMenuItem =gnselectItem_Setting_slider;
PostMessage(hwnd,WM_PAINT,0,0);
default:
return DefWindowProc(hwnd,iMsg,wParam,lParam);
}
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -