📄 syscnfg.c
字号:
mainwin,0,lb_cap[i]);
SelectListBox( lb[i], temp_value[i] );
temp += st_h + 8;
}
bt_ok = CreateWindow( WNDCLASS_BUTTON,
"确定",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
bt_x,bt_y,
bt_w,bt_h,
mainwin,0,NULL);
bt_cancel = CreateWindow( WNDCLASS_BUTTON,
"取消",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
(U16)(bt_x + bt_w),bt_y,
bt_w,bt_h,
mainwin,0,NULL);
SetFocus( bt_ok );
while( !quit )
{
ASIXGetMessage( &msg, NULL, 0, 0 );
switch( msg.message )
{
case WM_COMMAND:
if( msg.lparam == bt_ok )
{
// 保存设置
for( i = 0; i < 4; i++ )
{
UartCnfgValue[i] = temp_value[i];
}
ChangeUartConfig( UART0 );
quit = 1;
}
else if( msg.lparam == bt_cancel )
{
quit = 1;
}
break;
case WM_LISTBOX:
for( i = 0; i < 4; i++ )
{
if( msg.lparam == lb[i] )
{
temp_value[i] = (BYTE)msg.wparam;
break;
}
}
break;
case WM_KEYDOWN:
case WM_KEYUP:
// 切换焦点
switch( msg.wparam )
{
case ASIX_KEY_UP:
case ASIX_KEY_LEFT:
case ASIX_KEY_DOWN:
case ASIX_KEY_RIGHT:
if( msg.lparam == bt_ok )
SetFocus( bt_cancel );
else if( msg.lparam == bt_cancel )
SetFocus( bt_ok );
break;
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
// 声音设置任务
void ConfigAudio( void )
{
MSG msg;
U8 quit = 0;
// U32 hGC;
// 窗口和控件ID
U32 mainwin; // 主窗口
U32 bt_inc, bt_dec; // 音量调节按键
U32 bt_ok; // 确定键
U32 bt_cancel; // 取消键
U32 bt_prompt; // 设置提示音
U32 st_prompt; // 音量选项提示
U32 bt_volume; // 音量值
U32 snd_dip; // 按键音和触屏音开关
U32 tskbar; // 任务栏
SL_ITEM dip_item[]=
{
SL_UNCHECKED, "按键音",
SL_UNCHECKED, "触屏音",
0, NULL,
};
U16 temp;
S8 *stcap = "音量调节";
S8 value_str[6];
BYTE temp_value[3];
// WINDOW ARRANGEMENT
const U16 form_w = PHY_LCD_W, form_h = PHY_LCD_H, form_x = 0, form_y = 0;
const U16 st_w = 60, st_h = 24, st_x = form_x + 5, st_y = form_y + 20 + ( form_h - 88 - st_h * 4 )/2;
const U16 bt_w = 24, bt_h = 24, bt_x = st_x, bt_y = st_y;
const U16 st_w2 = LCD_WIDTH-58, st_x2 = bt_x + bt_w, bt_x2 = LCD_WIDTH - 29;
const U16 bt_w3[3] = { LCD_WIDTH/3, LCD_WIDTH*1/3, LCD_WIDTH - LCD_WIDTH*2/3 }, bt_h3 = LCD_HEIGHT/10, bt_x3[3] = { 1, LCD_WIDTH/3, LCD_WIDTH*2/3 }, bt_y3 = form_y + PHY_LCD_H - 20 - bt_h3;
const U16 sl_w = 72, sl_h = 60;
mainwin = CreateWindow( WNDCLASS_WIN,
"声音设置",
WS_OVERLAPPEDWINDOW,
form_x,form_y,
form_w,form_h,
0,
0,
NULL);
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
temp = st_y;
// 获取初始音量设置
sprintf( value_str, "%d", AudioCnfgValue[0] );
temp_value[0] = AudioCnfgValue[0];
// 音量提示
st_prompt = CreateWindow( WNDCLASS_STATIC,
stcap,
WS_CHILD | SS_TEXT | SS_RIGHT,
st_x,temp,
st_w,st_h,
mainwin,0,NULL);
temp += st_h + 8;
// 减少键
bt_dec = CreateWindow( WNDCLASS_BUTTON,
NULL,//"-",
WS_CHILD | BS_ICON | BS_FLAT,
bt_x,temp,
bt_w,bt_h,
mainwin,0,(char *)left10X10);
EnableFocus( bt_dec, FALSE ); // 屏蔽焦点
// 音量值
bt_volume = CreateWindow( WNDCLASS_BUTTON,
value_str,
WS_CHILD | BS_BOARD | BS_FLAT,
st_x2,temp,
st_w2,st_h,
mainwin,0,NULL);
// 增加键
bt_inc = CreateWindow( WNDCLASS_BUTTON,
NULL,//"+",
WS_CHILD | BS_ICON | BS_FLAT,
bt_x2,temp,
bt_w,bt_h,
mainwin,0,(char *)right10X10);
EnableFocus( bt_inc, FALSE ); // 屏蔽焦点
temp += bt_h + 16;
// 按键音和触屏音开关
snd_dip = CreateWindow( WNDCLASS_SELECT,
NULL,
WS_CHILD | SLS_CHECKBOX | SLS_ENABLE,
st_x,temp,
sl_w,sl_h,
mainwin,0,dip_item);
temp += sl_h + 16;
bt_ok = CreateWindow( WNDCLASS_BUTTON,
"确定",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
bt_x3[0],bt_y3,
bt_w3[0],bt_h3,
mainwin,0,NULL);
bt_prompt = CreateWindow( WNDCLASS_BUTTON,
"提示音",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
bt_x3[1],bt_y3,
bt_w3[1],bt_h3,
mainwin,0,NULL);
bt_cancel = CreateWindow( WNDCLASS_BUTTON,
"取消",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
bt_x3[2],bt_y3,
bt_w3[2],bt_h3,
mainwin,0,NULL);
SetFocus( bt_volume );
while( !quit )
{
ASIXGetMessage( &msg, NULL, 0, 0 );
switch( msg.message )
{
case WM_COMMAND:
if( msg.lparam == bt_dec )
{
// 减少值
if( temp_value[0] == 0 )
break;
temp_value[0]--;
sprintf( value_str, "%d", temp_value[0] );
SetWindowText( bt_volume, value_str, NULL );
if( GetFocus() != bt_volume )
SetFocus( bt_volume );
break;
}
else if( msg.lparam == bt_inc )
{
// 增加值
//if( temp_value[i] == VALUE_MAX )
// break;
temp_value[0]++;
sprintf( value_str, "%d", temp_value[0] );
SetWindowText( bt_volume, value_str, NULL );
if( GetFocus() != bt_volume )
SetFocus( bt_volume );
break;
}
else if( msg.lparam == bt_ok )
{
int i;
// 保存设置
for( i = 0; i < 3; i++ )
AudioCnfgValue[i] = temp_value[i];
quit = 1;
}
else if( msg.lparam == bt_cancel )
{
// 恢复设置
quit = 1;
}
else if( msg.lparam == bt_prompt )
{
// 设置提示音
ConfigPromptSound();
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
// 提示音设置
void ConfigPromptSound( void )
{
MSG msg;
U8 quit = 0;
// U32 hGC;
// 窗口和控件ID
U32 mainwin; // 主窗口
U32 lb[4]; // 配置选项列表
U32 bt_ok; // 确定键
U32 bt_cancel; // 取消键
U32 st[4]; // 选项提示
U32 tskbar; // 任务栏
S8 *stcap[4] = { "电话提示音", "短信提示音", "约会提示音", "警告提示音" };
struct LBOX_ITEM lb_phone[] =
{
ICON_ENABLE, UNUNDERLINE, "无",
ICON_END, UNUNDERLINE, NULL
};
struct LBOX_ITEM lb_sms[] =
{
ICON_ENABLE, UNUNDERLINE, "无",
ICON_END, UNUNDERLINE, NULL
};
struct LBOX_ITEM lb_app[] =
{
ICON_ENABLE, UNUNDERLINE, "无",
ICON_END, UNUNDERLINE, NULL
};
struct LBOX_ITEM lb_warning[] =
{
ICON_ENABLE, UNUNDERLINE, "无",
ICON_END, UNUNDERLINE, NULL
};
struct LBOX_ITEM *lb_cap[4];
U8 i;
U16 temp;
BYTE temp_value[4];
// WINDOW ARRANGEMENT
const U16 form_w = PHY_LCD_W, form_h = PHY_LCD_H, form_x = 0, form_y = 0;
const U16 st_w = PHY_LCD_W/4, st_h = 24, st_x = form_x + 5, st_y = form_y + 20 + ( form_h - 72 - st_h * 5 )/2;
const U16 lb_w = PHY_LCD_W/2, lb_h = st_h, lb_x = st_x + st_w + PHY_LCD_W/6, lb_y = st_y;
const U16 bt_w = (PHY_LCD_W-2)/2, bt_h = st_h, bt_x = form_x + 1, bt_y = form_y + PHY_LCD_H - 20 - bt_h;
lb_cap[0] = lb_phone;
lb_cap[1] = lb_sms;
lb_cap[2] = lb_app;
lb_cap[3] = lb_warning;
mainwin = CreateWindow( WNDCLASS_WIN,
"提示音方案",
WS_OVERLAPPEDWINDOW,
form_x,form_y,
form_w,form_h,
0,
0,
NULL);
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
temp = st_y;
for( i = 0; i < 4; i++ )
{
temp_value[i] = AudioCnfgValue[i+3];
// 提示
st[i] = CreateWindow( WNDCLASS_STATIC,
stcap[i],
WS_CHILD | SS_TEXT | SS_RIGHT,
st_x,temp,
st_w,st_h,
mainwin,0,NULL);
// 选项
lb[i] = CreateWindow( WNDCLASS_LIST,
NULL,
WS_CHILD | LBS_POPUP,
lb_x,temp,
lb_w,lb_h,
mainwin,0,lb_cap[i]);
SelectListBox( lb[i], temp_value[i] );
temp += st_h + 8;
}
bt_ok = CreateWindow( WNDCLASS_BUTTON,
"确定",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
bt_x,bt_y,
bt_w,bt_h,
mainwin,0,NULL);
bt_cancel = CreateWindow( WNDCLASS_BUTTON,
"取消",
WS_CHILD | BS_REGULAR | BS_FLAT | BS_BOARD,
(U16)(bt_x+bt_w),bt_y,
bt_w,bt_h,
mainwin,0,NULL);
SetFocus( bt_ok );
while( !quit )
{
ASIXGetMessage( &msg, NULL, 0, 0 );
switch( msg.message )
{
case WM_COMMAND:
if( msg.lparam == bt_ok )
{
// 保存设置
quit = 1;
}
else if( msg.lparam == bt_cancel )
{
// 恢复设置
quit = 1;
}
break;
case WM_LISTBOX:
for( i = 0; i < 4; i++ )
{
if( msg.lparam == lb[i] )
{
temp_value[i] = (BYTE)msg.wparam;
break;
}
}
break;
case WM_KEYDOWN:
case WM_KEYUP:
// 切换焦点
switch( msg.wparam )
{
case ASIX_KEY_UP:
case ASIX_KEY_LEFT:
case ASIX_KEY_DOWN:
case ASIX_KEY_RIGHT:
if( msg.lparam == bt_ok )
SetFocus( bt_cancel );
else if( msg.lparam == bt_cancel )
SetFocus( bt_ok );
break;
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
}
// GSM设置任务
void ConfigGSM( void )
{
U16 bat_vol;
bat_vol = BatVoltRead();
EndofTask();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -