📄 testasix.c
字号:
NULL);
bt2 = CreateWindow( WNDCLASS_BUTTON,
"左",
WS_CHILD | BS_REGULAR,
20,55,
32,20,
mainwin,
0,
NULL);
bt3 = CreateWindow( WNDCLASS_BUTTON,
"右",
WS_CHILD | BS_REGULAR,
20,80,
32,20,
mainwin,
0,
NULL);
bt4 = CreateWindow( WNDCLASS_BUTTON,
"清除",
WS_CHILD | BS_REGULAR,
60,30,
32,20,
mainwin,
0,
NULL);
bt5 = CreateWindow( WNDCLASS_BUTTON,
"退格",
WS_CHILD | BS_REGULAR,
60,55,
32,20,
mainwin,
0,
NULL);
bt6 = CreateWindow( WNDCLASS_BUTTON,
"删除",
WS_CHILD | BS_REGULAR,
60,80,
32,20,
mainwin,
0,
NULL);
EnableFocus( bt1, FALSE );
EnableFocus( bt2, FALSE );
EnableFocus( bt3, FALSE );
EnableFocus( bt4, FALSE );
EnableFocus( bt5, FALSE );
EnableFocus( bt6, FALSE );
hGC = GetGC();
edit1 = CreateWindow( WNDCLASS_EDITOR,
"Good!",
// WS_CHILD | ES_SINGLE_REGULAR,
WS_CHILD | ES_SINGLELINE | ES_RIGHT,// | ES_NOBORDER,
10,105,
100,16,
mainwin,
30,
NULL);
edit2 = CreateWindow( WNDCLASS_EDITOR,
NULL,
WS_CHILD | ES_SINGLE_REGULAR,
20,130,
60,20,
mainwin,
30,
NULL);
SetFocus( edit1 );
while(!quit)
{
ASIXGetMessage(&msg, NULL, 0, 0);
focusWin = (ASIX_WINDOW *)GetFocus();
switch(msg.message)
{
case WM_COMMAND:
if( msg.lparam == bt1 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = *((U16 *)key[(i++)%7 ]);
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt2 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = MOVE_LEFT;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt3 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = MOVE_RIGHT;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt4 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = ESCAPE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
// test code for repaint and focus
// MessageBox(0,"test", "!!", MB_YESNOCANCEL) ;
}else
if( msg.lparam == bt5 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = BACKSPACE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt6 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = DELETE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
/********************************************************************
* Function test_kb()
* param in: void
* param out: void
* description: 测试键盘控件
********************************************************************/
void test_kb( void ) // test keybar
{
MSG msg;
U32 mainwin;
U32 hGC;
U32 edit1;
// U32 edit2;
U32 keyboard;
U8 quit=0;
U16 wndwidth, wndHeight;
S8 *text = "第三次改版后的一些重大变化:\n\
*此次改版最重要的变化是增加了一些功能如每月奖项,每日热帖,每日新帖等;\n\
*为鼓励大家的积极性,每月奖项将评出论坛月度的五个奖项;\n\
*每日热帖将列出当天发表或被回复的所有文章,方便大家掌握论坛的最新动态;\n\
*每日新帖将列出当天发表的所有新文章,大家可以一目了然地查看当天的新文章;\n\
*目前有月度积分和总积分两项积分,积分的规定如下:\n\
1.用户发表一篇文章+5分;\n\
2.用户回复别人文章一次+2分;\n\
3.用户发表文章被斑竹加酷+10分;\n\
4.用户发表的文章被回复一次+1分;\n\
5.用户发表的文章被斑竹删除一次-10分,但对应的回复者不扣分;\n\
6.用户发表的回复被斑竹单独删除一次-4分;\n\
*此次改版大家如果有什么问题和建议请尽快与我联系,以便尽快作出改进;\n\
吴旭凡\n\
2001.10.31";
wndwidth = ( PHY_LCD_W > ASIX_LCD_W ) ? ASIX_LCD_W : PHY_LCD_W;
wndHeight = ( PHY_LCD_H > ASIX_LCD_H ) ? ASIX_LCD_H : PHY_LCD_H;
mainwin = CreateWindow( WNDCLASS_WIN,
"键盘控件测试",
WS_OVERLAPPEDWINDOW,
0,0,
wndwidth,wndHeight,
0,
0,
NULL);
/*
edit1 = CreateWindow( WNDCLASS_EDITOR,
NULL,
WS_CHILD | ES_SINGLE_REGULAR,
20,40,
60,20,
mainwin,
30,
NULL);
edit2 = CreateWindow( WNDCLASS_EDITOR,
NULL,
WS_CHILD | ES_SINGLE_REGULAR,
20,80,
60,20,
mainwin,
30,
NULL);
*/
edit1 = CreateWindow( WNDCLASS_EDITOR,
text,
WS_CHILD | ES_MULTI_REGULAR | ES_NOBORDER,
1,17,
(U16)(wndwidth-2),
(U16)(wndHeight-120),
mainwin,
0,
NULL);
keyboard = CreateWindow( WNDCLASS_KEYBD,
NULL,
WS_CHILD|KBS_PINGYING|0xff,
1, 150,
(U16)(wndwidth-2),16,
mainwin,
0,
NULL);
hGC = GetGC();
SetFocus( edit1 );
while(!quit)
{
ASIXGetMessage(&msg, NULL, 0, 0);
switch(msg.message)
{
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
/********************************************************************
* Function test_med()
* param in: void
* param out: void
* description: 测试多行编辑器
********************************************************************/
void test_med( void ) // test multi_line editor
{
MSG msg, ed_msg;
U32 mainwin;
U32 hGC;
U32 bt1,bt2,bt3,bt4,bt5,bt6;
U32 edit;
U8 quit=0;
U16 i=0;
S8 key[][4]={ "A",
"中",
"B",
"C",
"国",
"人",
"D"};
ASIX_WINDOW *focusWin;
struct ed_ctrl *edctrl;
mainwin = CreateWindow( WNDCLASS_WIN,
"多行编辑器测试",
WS_OVERLAPPEDWINDOW,
0,0,
PHY_LCD_W,PHY_LCD_H,
0,
0,
NULL);
bt1 = CreateWindow( WNDCLASS_BUTTON,
"按键",
WS_CHILD | BS_REGULAR,
20,30,
32,20,
mainwin,
0,
NULL);
bt2 = CreateWindow( WNDCLASS_BUTTON,
"左",
WS_CHILD | BS_REGULAR,
20,55,
32,20,
mainwin,
0,
NULL);
bt3 = CreateWindow( WNDCLASS_BUTTON,
"右",
WS_CHILD | BS_REGULAR,
20,80,
32,20,
mainwin,
0,
NULL);
bt4 = CreateWindow( WNDCLASS_BUTTON,
"清除",
WS_CHILD | BS_REGULAR,
60,30,
32,20,
mainwin,
0,
NULL);
bt5 = CreateWindow( WNDCLASS_BUTTON,
"退格",
WS_CHILD | BS_REGULAR,
60,55,
32,20,
mainwin,
0,
NULL);
bt6 = CreateWindow( WNDCLASS_BUTTON,
"删除",
WS_CHILD | BS_REGULAR,
60,80,
32,20,
mainwin,
0,
NULL);
EnableFocus( bt1, FALSE );
EnableFocus( bt2, FALSE );
EnableFocus( bt3, FALSE );
EnableFocus( bt4, FALSE );
EnableFocus( bt5, FALSE );
EnableFocus( bt6, FALSE );
hGC = GetGC();
edit = CreateWindow( WNDCLASS_EDITOR,
NULL,
WS_CHILD | ES_MULTI_REGULAR,
10,105,
80,52,
mainwin,
60,
NULL);
SetWindowText( edit, "欢迎使用多行编辑测试\nabcde\nfghijk\n1234567\n我们\n都是中国人", NULL );
SetFocus( edit );
while(!quit)
{
ASIXGetMessage(&msg, NULL, 0, 0);
focusWin = (ASIX_WINDOW *)GetFocus();
switch(msg.message)
{
case WM_COMMAND:
if( msg.lparam == bt1 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = *((U16 *)key[(i++)%7 ]);
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt2 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = MOVE_LEFT;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt3 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = MOVE_RIGHT;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt4 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = ESCAPE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
// test code for repaint and focus
//MessageBox(0,"test", "!!", MB_YESNOCANCEL) ;
}else
if( msg.lparam == bt5 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = BACKSPACE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}else
if( msg.lparam == bt6 )
{
edctrl = (struct ed_ctrl *)( focusWin->ctrl_str );
ed_msg.message = WM_CHAR;
ed_msg.lparam = (U32) focusWin;
ed_msg.wparam = DELETE;
ed_msg.data = (void *)edctrl;
AdvSendMessage(GetCurTask()->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);
}
break;
case WM_QUIT:
quit = 1;
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -