打印

【急】求帮助,我想合并2个ADS1.2的程序功能。

[复制链接]
1726|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pollutiond|  楼主 | 2011-4-3 13:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说明下我用的是博创开发版。先发下开发板的数据:cpu: arm7tdmi结构芯片s3c44b0x,工作频率60MHZ;bios: 2M, NOR flash;内存:8M SDRAM;海量存储器:16M, NAND flash;我现在有2个现成的程序,一个是电子画板功能,另外一个是显示时间功能(在文本框内)。2个程序单独都能运行,我现在希望能合并在一起,就是在电子画板的主界面上能有时间显示。真心求帮助~~希望有好心人能帮助我,我只有50分,全部送上了。。。下面我贴出2个程序的附件。

电子画板和时钟.rar

791.42 KB

相关帖子

沙发
pollutiond|  楼主 | 2011-4-3 13:10 | 只看该作者
希望哪位大侠做好能发我QQ邮箱:113791212@qq.com。再次感谢一下,真心希望得到帮助~~T T。

使用特权

评论回复
板凳
pollutiond|  楼主 | 2011-4-3 18:30 | 只看该作者
额,希望有人能帮我,我真的很需要- -,或者不要合并,能在电子画板的程序上添加一个时间显示的功能也行。。。拜托各位高手了。小弟是新手中的新手。。

使用特权

评论回复
地板
pollutiond|  楼主 | 2011-4-4 12:59 | 只看该作者
今天继续苦等各位大大能帮助小弟。

使用特权

评论回复
5
pollutiond|  楼主 | 2011-4-5 14:23 | 只看该作者
PTextCtrl pTextCtrl;//文本框结构
#define ID_MainTextCtrl 101//文本框ID

U8 SetSysTime()
{
U16* ptext=pTextCtrl->text;//得到文本框文本指针
U32 tmp[3],i;
structClock clock;

for(i=0;i<3;i++){//从文本中分离出时间bcd码,把每个时间单位占用的两个unicode码处理后放到U32的低八位(两个四位)
  tmp[i]=0;
  while(*ptext && *ptext !=':'){
   tmp[i]<<=4;
   tmp[i]|=(*ptext)-'0';
   ptext++;
  }
  ptext++;
}

clock.hour=tmp[0];
clock.minute=tmp[1];
clock.second=tmp[2];
if((clock.hour<=0x24&&clock.hour>=0)&&(clock.minute>=0&&clock.minute<=0x60)&&(clock.second>=0&&clock.second<=0x60))//小时在0~24,分和秒在0~60
{
  Set_Rtc_Clock(&clock);//设置时间
  return TRUE;
}
else
{
  return FALSE;
}
}


void CreateText()
{
static char TimeKeyTable[]={0,0,0,'\b','7','8','9',0,'4','5','6','1','2','3',0,'0',':'};//键值映射表

structRECT rect;//定义矩形结构
SetRect(&rect, 80,30,160,50); //设置文本框
pTextCtrl=CreateTextCtrl(ID_MainTextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,TimeKeyTable,NULL);//创建文本框

SetWndCtrlFocus(NULL,ID_MainTextCtrl);//焦点移到文本框中

DrawTextCtrl(pTextCtrl);//重绘文本框

}

U8 onKey(int nkey, int fnkey);

OS_EVENT *Rtc_Updata_Sem;//时钟更新控制权
OS_STK Rtc_Disp_Stack[STACKSIZE]={0, };   //Rtc_Disp_Task堆栈
void Rtc_Disp_Task(void *Id);             //Rtc_Disp_Task
#define Rtc_Disp_Task_Prio      14

void Main_Task(void *Id)             //Main_Test_Task
{
POSMSG pMsg=0;//消息结构

ClearScreen();//清屏
CreateText(); //创建文本框

Rtc_Updata_Sem=OSSemCreate(1);
OSTaskCreate(Rtc_Disp_Task,  (void *)0,  (OS_STK *)&Rtc_Disp_Stack[STACKSIZE-1],  Rtc_Disp_Task_Prio); //5//创建时钟任务


//消息循环
for(;;){
  POS_Ctrl pCtrl;//控件结构
  pMsg=WaitMessage(0);//等待消息

  if(pMsg->pOSCtrl){//发给控件的消息
   if(pMsg->pOSCtrl->CtrlMsgCallBk)
    (*pMsg->pOSCtrl->CtrlMsgCallBk)(pMsg);
  }
  else{
   switch(pMsg->Message){
   case OSM_KEY://键盘消息
    pCtrl=GetCtrlfromID(NULL, GetWndCtrlFocus(NULL));//得到焦点控件指针
    if(pCtrl->CtrlType==CTRLTYPE_WINDOW){
     if((((PWnd)pCtrl)->style&WND_STYLE_MODE)==WND_STYLE_MODE){
      //焦点是有模式窗口,消息直接传递过去
      OSOnSysMessage(pMsg);
      break;
     }
    }
    if(onKey(pMsg->WParam,pMsg->LParam) )
     break;
   default:
    OSOnSysMessage(pMsg);
    break;
   }
  }
  DeleteMessage(pMsg);//删除消息
}
}

U8 onKey(int nkey, int fnkey)
{
static U8 input=FALSE;//编辑状态标志
INT8U err;
char errinformation[]="data flow!";//数据溢出信息

switch(nkey){
case 14://OK
  if(!input){//没处于编辑状态
   OSSemPend(Rtc_Updata_Sem, 0,&err);//等待信号量
   pTextCtrl->text[0]=0;  //清空文本框
   SetTextCtrlEdit(pTextCtrl, TRUE);//焦点移到文本框控件
   DrawTextCtrl(pTextCtrl);//重绘文本框控件
   input=TRUE;//置编辑标志为是
  }
  else{
   if(SetSysTime())//输入的数据有效
   {
    SetTextCtrlEdit(pTextCtrl, FALSE);//退出编辑状态
    DrawTextCtrl(pTextCtrl);//重绘文本框控件
    input=FALSE;//置编辑标志为否
    OSSemPost(Rtc_Updata_Sem);//发送信号?
   }
   else
   {
    strChar2Unicode(pTextCtrl->text,errinformation);//数据溢出信息转换成unicode
    DrawTextCtrl(pTextCtrl);//重绘文本框控件
    pTextCtrl->text[0]=0;  //清空文本框
   }
  }
  return TRUE;
case 7://Cancel
  if(input){
   SetTextCtrlEdit(pTextCtrl, FALSE);//退出编辑状态

   input=FALSE;//编辑状态标志为否

   OSSemPost(Rtc_Updata_Sem);//发送信号量
  }  
  return TRUE;
}
return FALSE;
}

////////////////////////////////////////////////////////////////
void Rtc_Disp_Task(void *Id) //时钟显示更新任务
{
U16 strtime[10];
INT8U err;

for(;;){
  if(Rtc_IsTimeChange(RTC_SECOND_CHANGE)){//不需要更新显示
   OSSemPend(Rtc_Updata_Sem, 0,&err);//等待信号量
   Rtc_Format("%H:%I:%S",strtime);//格式化时间
   SetTextCtrlText(pTextCtrl, strtime,TRUE);//设置文本框内容
   OSSemPost(Rtc_Updata_Sem);//发送信号量
  }
  OSTimeDly(250);
}
}
看不懂呀看不懂。。

使用特权

评论回复
6
pollutiond|  楼主 | 2011-4-5 14:23 | 只看该作者
为了显示一个时间 怎么需要那么多代码。。。。。

使用特权

评论回复
7
pollutiond|  楼主 | 2011-4-5 14:26 | 只看该作者
void Main_Task(void *Id)             //Main_Test_Task
{
        POSMSG pMsg;
        structPOINT Touch_Position,*pTouch_Position;
        ButtonCtrl  First_Button,Second_Button,Third_Button,Back_Button,Back2_Button,LeftToRight_Button,UpToDown_Button,
                                Line_Button,Circle_Button,Curve_Button,Clear_Button,Green_Button,Red_Button,
                                  Blue_Button,Rect_Button,Tri_Button,Twowidth_Button,Fourwidth_Button;
        PButtonCtrl pFirst_Button,pSecond_Button,pThird_Button,pBack_Button,pBack2_Button,pLeftToRight_Button,pUpToDown_Button,
                                pLine_Button,pCircle_Button,pCurve_Button,pClear_Button,pGreen_Button,pRed_Button,
                                pBlue_Button,pRect_Button,pTri_Button,pTwowidth_Button,pFourwidth_Button;
        Wnd Draw_Wnd;
        PWnd pDraw_Wnd;
        structRECT  First_Button_RECT,Second_Button_RECT,Third_Button_RECT,Back_Button_RECT,Back2_Button_RECT,LeftToRight_Button_RECT,UpToDown_Button_RECT,
                                Line_Button_RECT,Circle_Button_RECT,Curve_Button_RECT,Clear_Button_RECT,Draw_Wnd_RECT,
                                Green_Button_RECT,Red_Button_RECT,Blue_Button_RECT,
                                Rect_Button_RECT,Tri_Button_RECT,Twowidth_Button_RECT,Fourwidth_Button_RECT;
                               
        structRECT  *pFirst_Button_RECT,*pSecond_Button_RECT,*pThird_Button_RECT,*pBack_Button_RECT,*pBack2_Button_RECT,*pLeftToRight_Button_RECT,*pUpToDown_Button_RECT,
                                *pLine_Button_RECT,*pCircle_Button_RECT,*pCurve_Button_RECT,*pClear_Button_RECT,*pDraw_Wnd_RECT,
                                *pGreen_Button_RECT,*pRed_Button_RECT,*pBlue_Button_RECT,
                                *pRect_Button_RECT,*pTri_Button_RECT,*pTwowidth_Button_RECT,*pFourwidth_Button_RECT;
        structRECT Show_Word_RECT,Show_Word2_RECT;
       
        structRECT * pShow_Word_RECT,*pShow_Word2_RECT;

        char Frame_State=0;//界面状态,0,主界面;1,电子画板界面;2,流程图界面;3,滚动字幕界面
        int Key_Counter=0;//键盘按键次数
        //char Key_Value;//按键值
       
        int Triangle_State=0;
        int Rect_State=0;
        int Draw_State=0;// 1,划线;2,画圆;3,画曲线
       
        int Line_State=0;
        int Circle_State=0;// 1,起点;2,终点
       
        int r;//圆半径
        int x0,y0;//圆心坐标
        int oldrang_x,oldrang_y;
        int Word_Position;
        PDC pdc;
       
        pTouch_Position=&Touch_Position;
       
       
       
        pFirst_Button=&First_Button;
        pSecond_Button=&Second_Button;
        pThird_Button=&Third_Button;
        pBack_Button=&Back_Button;
        pBack2_Button=&Back2_Button;
       
        pLine_Button=&Line_Button;
        pCircle_Button=&Circle_Button;
        pCurve_Button=&Curve_Button;
        pClear_Button=&Clear_Button;
        pDraw_Wnd=&Draw_Wnd;
        pGreen_Button=&Green_Button;
        pRed_Button=&Red_Button;
        pBlue_Button=&Blue_Button;
        pRect_Button=&Rect_Button;
        pTri_Button=&Tri_Button;
        pFourwidth_Button=&Fourwidth_Button;
        pTwowidth_Button=&Twowidth_Button;
       
       
        pFirst_Button_RECT=&First_Button_RECT;
        pSecond_Button_RECT=&Second_Button_RECT;
        pThird_Button_RECT=&Third_Button_RECT;
        pBack_Button_RECT=&Back_Button_RECT;
        pBack2_Button_RECT=&Back2_Button_RECT;
               
        pLine_Button_RECT=&Line_Button_RECT;
        pCircle_Button_RECT=&Circle_Button_RECT;
        pCurve_Button_RECT=&Curve_Button_RECT;
        pClear_Button_RECT=&Clear_Button_RECT;
        pDraw_Wnd_RECT=&Draw_Wnd_RECT;
        pGreen_Button_RECT=&Green_Button_RECT;
        pRed_Button_RECT=&Red_Button_RECT;
        pBlue_Button_RECT=&Blue_Button_RECT;
        pRect_Button_RECT=&Rect_Button_RECT;
        pTri_Button_RECT=&Tri_Button_RECT;
       
        pTwowidth_Button_RECT=&Twowidth_Button_RECT;
       
        pFourwidth_Button_RECT=&Fourwidth_Button_RECT;
        pShow_Word_RECT = &Show_Word_RECT;
        pShow_Word2_RECT=&Show_Word2_RECT;
        pLeftToRight_Button_RECT=&LeftToRight_Button_RECT;
        pUpToDown_Button_RECT=&UpToDown_Button_RECT;
       
        strChar2Unicode(Line_Button_Caption_16, Line_Button_Caption_8);
        strChar2Unicode(Circle_Button_Caption_16, Circle_Button_Caption_8);
        strChar2Unicode(Curve_Button_Caption_16, Curve_Button_Caption_8);
        strChar2Unicode(Clear_Button_Caption_16, Clear_Button_Caption_8);
        strChar2Unicode(Draw_Wnd_Caption_16, Draw_Wnd_Caption_8);
        strChar2Unicode(Green_Button_Caption_16, Green_Button_Caption_8);
        strChar2Unicode(Red_Button_Caption_16, Red_Button_Caption_8);
        strChar2Unicode(Blue_Button_Caption_16, Blue_Button_Caption_8);
        strChar2Unicode(Rect_Button_Caption_16, Rect_Button_Caption_8);
        strChar2Unicode(Tri_Button_Caption_16,Tri_Button_Caption_8);
        strChar2Unicode(Twowidth_Button_Caption_16, Twowidth_Button_Caption_8);   
        strChar2Unicode(Fourwidth_Button_Caption_16, Fourwidth_Button_Caption_8);
       
        strChar2Unicode(First_Button_Caption_16, First_Button_Caption_8);
        strChar2Unicode(Second_Button_Caption_16, Second_Button_Caption_8);
        strChar2Unicode(Third_Button_Caption_16, Third_Button_Caption_8);
        strChar2Unicode(Back_Button_Caption_16, Back_Button_Caption_8);
        strChar2Unicode(Back2_Button_Caption_16,Back2_Button_Caption_8);
        strChar2Unicode(Show_Word_Caption_16, Show_Word_Caption_8);

        strChar2Unicode(LeftToRight_Button_Caption_16,LeftToRight_Button_Caption_8);
        strChar2Unicode(UpToDown_Button_Caption_16,UpToDown_Button_Caption_8);

        strChar2Unicode(Process_Chart_1_Caption_16, Process_Chart_1_Caption_8);
        strChar2Unicode(Process_Chart_2_Caption_16, Process_Chart_2_Caption_8);
        strChar2Unicode(Process_Chart_3_Caption_16, Process_Chart_3_Caption_8);
        strChar2Unicode(Process_Chart_4_Caption_16, Process_Chart_4_Caption_8);
        strChar2Unicode(Process_Chart_5_Caption_16, Process_Chart_5_Caption_8);
        strChar2Unicode(Process_Chart_6_Caption_16, Process_Chart_6_Caption_8);
        strChar2Unicode(Process_Chart_7_Caption_16, Process_Chart_7_Caption_8);
        strChar2Unicode(Process_Chart_8_Caption_16, Process_Chart_8_Caption_8);
        strChar2Unicode(Process_Chart_9_Caption_16, Process_Chart_9_Caption_8);
        strChar2Unicode(Process_Chart_10_Caption_16, Process_Chart_10_Caption_8);
        strChar2Unicode(Process_Chart_11_Caption_16, Process_Chart_11_Caption_8);

        strChar2Unicode(Class_Caption_16, Class_Caption_8);
        strChar2Unicode(Name_Caption_16, Name_Caption_8);

       
        //显示滚动字幕的矩形区域
        Show_Word_RECT.left=135;
        Show_Word_RECT.right=307;
        Show_Word_RECT.top=97;
        Show_Word_RECT.bottom=110;

        Show_Word2_RECT.left=135;
        Show_Word2_RECT.right=200;
        Show_Word2_RECT.top=15;
        Show_Word2_RECT.bottom=220;

       
       
        First_Button_RECT.left=20;
        First_Button_RECT.right=110;
        First_Button_RECT.top=30;
        First_Button_RECT.bottom=70;
       
        Second_Button_RECT.left=20;
        Second_Button_RECT.right=110;
        Second_Button_RECT.top=90;
        Second_Button_RECT.bottom=130;
       
        Third_Button_RECT.left=20;
        Third_Button_RECT.right=110;
        Third_Button_RECT.top=150;
        Third_Button_RECT.bottom=190;
//*
        Back_Button_RECT.left=90; //电子画板 界面的返回键
        Back_Button_RECT.right=120;
        Back_Button_RECT.top=150;
        Back_Button_RECT.bottom=180;

        Back2_Button_RECT.left=10;//流程图,滚动字幕界面的返回键
        Back2_Button_RECT.right=80;
        Back2_Button_RECT.top=190;
        Back2_Button_RECT.bottom=220;

        LeftToRight_Button_RECT.left=10;
        LeftToRight_Button_RECT.right=80;
        LeftToRight_Button_RECT.top=110;
        LeftToRight_Button_RECT.bottom=140;

        UpToDown_Button_RECT.left=10;
        UpToDown_Button_RECT.right=80;
        UpToDown_Button_RECT.top=150;
        UpToDown_Button_RECT.bottom=180;

       

//*/       

        Line_Button_RECT.bottom=60;
        Line_Button_RECT.left=10;
        Line_Button_RECT.right=40;
        Line_Button_RECT.top=30;

        Circle_Button_RECT.bottom=100;
        Circle_Button_RECT.left=10;
        Circle_Button_RECT.right=40;
        Circle_Button_RECT.top=70;

        Curve_Button_RECT.bottom=140;
        Curve_Button_RECT.left=10;
        Curve_Button_RECT.right=40;
        Curve_Button_RECT.top=110;

       
        Red_Button_RECT.bottom=180;
        Red_Button_RECT.left=10;
        Red_Button_RECT.right=40;
        Red_Button_RECT.top=150;
       
        Green_Button_RECT.bottom=220;
        Green_Button_RECT.left=10;
        Green_Button_RECT.right=40;
        Green_Button_RECT.top=190;
       
       

        Rect_Button_RECT.top=30;
        Rect_Button_RECT.bottom=60;
        Rect_Button_RECT.left=50;
        Rect_Button_RECT.right=80;
       
    Tri_Button_RECT.top=70;
        Tri_Button_RECT.bottom=100;
        Tri_Button_RECT.left=50;
        Tri_Button_RECT.right=80;

   
   
    Twowidth_Button_RECT.top=150;
        Twowidth_Button_RECT.bottom=180;
        Twowidth_Button_RECT.left=50;
        Twowidth_Button_RECT.right=80;

    Fourwidth_Button_RECT.top=110;
        Fourwidth_Button_RECT.bottom=140;
        Fourwidth_Button_RECT.left=50;
        Fourwidth_Button_RECT.right=80;
   
   
   
    Blue_Button_RECT.top=190;
        Blue_Button_RECT.bottom=220;
        Blue_Button_RECT.left=50;
        Blue_Button_RECT.right=80;
               

        Clear_Button_RECT.bottom=220;
        Clear_Button_RECT.left=90;
        Clear_Button_RECT.right=120;
        Clear_Button_RECT.top=190;
       

        Draw_Wnd_RECT.bottom=230;
        Draw_Wnd_RECT.left=125;
        Draw_Wnd_RECT.right=310;
        Draw_Wnd_RECT.top=10;
       
        //建立所有的按键
        pFirst_Button=CreateButton(First_Button_ID, pFirst_Button_RECT, FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME, First_Button_Caption_16, NULL);
        pSecond_Button=CreateButton(Second_Button_ID, pSecond_Button_RECT, FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME,Second_Button_Caption_16, NULL);
        pThird_Button=CreateButton(Third_Button_ID, pThird_Button_RECT, FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME,Third_Button_Caption_16, NULL);
        pBack_Button=CreateButton(Back_Button_ID, pBack_Button_RECT, FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME, Back_Button_Caption_16, NULL);
        pBack2_Button=CreateButton(Back2_Button_ID,pBack2_Button_RECT,FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME,Back2_Button_Caption_16,NULL);
        pLine_Button=CreateButton(Line_Button_ID, pLine_Button_RECT, FONTSIZE_SMALL, CTRL_STYLE_3DDOWNFRAME, Line_Button_Caption_16, NULL);
        pCircle_Button=CreateButton(Circle_Button_ID,pCircle_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Circle_Button_Caption_16,NULL);
        pCurve_Button=CreateButton(Curve_Button_ID,pCurve_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Curve_Button_Caption_16,NULL);
        pRed_Button=CreateButton(Red_Button_ID,pRed_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Red_Button_Caption_16,NULL);
        pGreen_Button=CreateButton(Green_Button_ID,pGreen_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Green_Button_Caption_16,NULL);
        pRect_Button=CreateButton(Rect_Button_ID,pRect_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Rect_Button_Caption_16,NULL);
        pTri_Button=CreateButton(Tri_Button_ID,pTri_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Tri_Button_Caption_16,NULL);
        pTwowidth_Button=CreateButton(Twowidth_Button_ID,pTwowidth_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Twowidth_Button_Caption_16,NULL);
        pFourwidth_Button=CreateButton(Fourwidth_Button_ID,pFourwidth_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Fourwidth_Button_Caption_16,NULL);
        pBlue_Button=CreateButton(Blue_Button_ID,pBlue_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Blue_Button_Caption_16,NULL);
        pClear_Button=CreateButton(Clear_Button_ID,pClear_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,Clear_Button_Caption_16,NULL);

        pDraw_Wnd=CreateWindow(Draw_Wnd_ID, pDraw_Wnd_RECT, FONTSIZE_SMALL,WND_STYLE_MODELESS, Draw_Wnd_Caption_16, NULL);

        pLeftToRight_Button=CreateButton(LeftToRight_Button_ID,pLeftToRight_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,LeftToRight_Button_Caption_16,NULL);
        pUpToDown_Button=CreateButton(UpToDown_Button_ID,pUpToDown_Button_RECT,FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,UpToDown_Button_Caption_16,NULL);


        ClearScreen();
       
        DrawButton(pFirst_Button);
        DrawButton(pThird_Button);
        DrawButton(pSecond_Button);

        DrawWindow(pDraw_Wnd);
       
       
        pdc=CreateDC();
        pdc->DrawRect=Draw_Wnd_RECT;
        ShowBmp(pdc,bmpname,130,20);
    TextOut(pdc,200,160,Class_Caption_16,TRUE,FONTSIZE_SMALL);
    TextOut(pdc,200,180,Name_Caption_16,TRUE,FONTSIZE_SMALL);
        Frame_State=0;
        Draw_State=1;
        Line_State=0;
        Circle_State=0;
        Rect_State=0;
    Triangle_State=0;

使用特权

评论回复
8
pollutiond|  楼主 | 2011-4-5 14:27 | 只看该作者
for(;;)
        {
       
                pMsg=WaitMessage(0);
                switch(pMsg->Message)
                {
                        case OSM_TOUCH_SCREEN:
                                Touch_Position.x=pMsg->WParam&0xffff;
                                Touch_Position.y=pMsg->WParam>>16;
                                if(Frame_State==0)//初始化界面
                                {
                                        if(IsInRect2(pFirst_Button_RECT, pTouch_Position))// 判断进入流程图界面
                                        {
                                                Frame_State=1;
                                                  ClearScreen();
                                                  DrawButton(pLine_Button);
                                                DrawButton(pCircle_Button);
                                                DrawButton(pCurve_Button);
                                                DrawButton(pClear_Button);
                                                   DrawButton(pGreen_Button);
                                                DrawButton(pRed_Button);
                                                DrawButton(pBlue_Button);
                                                DrawButton(pRect_Button);
                                                DrawButton(pTri_Button);
                                                DrawButton(pTwowidth_Button);
                                                DrawButton(pFourwidth_Button);
                                                DrawButton(pBack_Button);
                                                DrawWindow(pDraw_Wnd);
                                               
                                        }
                                        else if(IsInRect2(pSecond_Button_RECT, pTouch_Position))//判断进入流程图界面
                                        {
                                                Frame_State=2;
                                                Key_Counter=0;
                                                ClearScreen();
                                                DrawButton(pBack2_Button);
                                                DrawWindow(pDraw_Wnd);
                                        }
                                        else if(IsInRect2(pThird_Button_RECT, pTouch_Position))//判断进入滚动字幕的界面
                                        {
                                                Frame_State=3;
                                                  ClearScreen();
                                                DrawButton(pLeftToRight_Button);
                                                DrawButton(pUpToDown_Button);
                                                  DrawButton(pBack2_Button);
                                                  DrawWindow(pDraw_Wnd);
                                       
                                        }
                                       
                                }
                                else if(Frame_State==1)//电子画板
                                {
                                        if(IsInRect2(pLine_Button_RECT, pTouch_Position))// line
                                        {
                                                Draw_State=1;
                                                Line_State=0;
                                        }
                                        else if(IsInRect2(pCircle_Button_RECT, pTouch_Position))// circle
                                        {
                                                Draw_State=2;
                                                Circle_State=0;
                                        }
                                        else if(IsInRect2(pCurve_Button_RECT, pTouch_Position))//curve
                                        {
                                                Draw_State=3;
                                        }
                                        else if(IsInRect2(pClear_Button_RECT, pTouch_Position))//clear
                                        {
                                                DrawWindow(pDraw_Wnd);
                                        }
                                        else if(IsInRect2(pRed_Button_RECT,pTouch_Position))//R
                                        {
                                                SetPenColor(pdc,RGB(0,0,255));
                                        }
                                        else if(IsInRect2(pGreen_Button_RECT,pTouch_Position))//G
                                        {
                                                SetPenColor(pdc,RGB(0,255,0));
                                        }
                                        else if(IsInRect2(pBlue_Button_RECT,pTouch_Position))//B
                                        {
                                                        SetPenColor(pdc,RGB(255,0,0));
                                        }
                                        else if(IsInRect2(pTwowidth_Button_RECT,pTouch_Position))//2p
                                        {
                                                        SetPenWidth(pdc,2);
                                        }       
                                        else if(IsInRect2(pFourwidth_Button_RECT,pTouch_Position))//4p
                                        {
                                                        SetPenWidth(pdc,4);
                                        }
                                        else if(IsInRect2(pRect_Button_RECT,pTouch_Position))//rect
                                        {
                                                        Draw_State=5;
                                                    Rect_State=0;
                                        }
                                        else if(IsInRect2(pTri_Button_RECT,pTouch_Position))//tri
                                        {
                                                        Draw_State=4;
                                                    Triangle_State=0;
                                        }
                                  else if(IsInRect2(pDraw_Wnd_RECT, pTouch_Position))
                                        {
                                                switch(Draw_State)
                                                {
                                                                case 1:
                                                                if(pMsg->LParam==TCHSCR_ACTION_CLICK)  //  line
                                                                {
                                                                        if(Line_State==0)
                                                                        {       
                                                                                MoveTo(pdc, Touch_Position.x, Touch_Position.y);//移动到第一个触摸点
                                                                       
                                                                                Line_State=1; //将Linestate 置1
                                                                               
                                                                        }
                                                                        else
                                                                        {
                                                                               
                                                                                LineTo( pdc, Touch_Position.x,Touch_Position.y);
                                                                               
                                                                                Line_State=0;  // 画线结束。
                                                                        }
                                                                }
                                                                break;
                                                        case 2:
                                                                if(pMsg->LParam==TCHSCR_ACTION_CLICK) //circle
                                                                {
                                                                        if(Circle_State==0)
                                                                        {
                                                                               
                                                                                x0=Touch_Position.x;
                                                                                y0=Touch_Position.y;   //保存圆心坐标
                                                                                Circle_State=1;
                                                                               
                                                                        }
                                                                        else
                                                                        {
                                                                                r=sqrt((x0-Touch_Position.x)*(x0-Touch_Position.x)+(y0-Touch_Position.y)*(y0-Touch_Position.y));
                                                                                Circle(pdc,x0,y0,r);
                                                                                Circle_State=0;  //画圆结束
                                                                               
                                                                        }
                                                                }
                                                                break;
                                                        case 3:
                                                                switch(pMsg->LParam)   //curve
                                                                {
                                                                        case TCHSCR_ACTION_DOWN: //触摸屏按下
                                                       
                                                                                MoveTo(pdc, Touch_Position.x, Touch_Position.y);
                                                                            break;
                                                                        case TCHSCR_ACTION_MOVE:// 触摸屏移动
                                                                       
                                                             LineTo(pdc, Touch_Position.x, Touch_Position.y);
                                                                             break;
                                                                }
                                                                break;
                                                        case 4:
                                                                if(pMsg->LParam==TCHSCR_ACTION_CLICK)  // triangle
                                                                {
                                                                   if(Triangle_State==0)
                                                                   {
                                                                                  
                                                                                MoveTo(pdc, Touch_Position.x, Touch_Position.y);
                                                                                x0=Touch_Position.x;
                                                                                y0=Touch_Position.y;//保存第一个触摸点,并将triangle_state置1
                                                                                Triangle_State=1;
                                                                               
                                                                    }
                                                                        else if(Triangle_State==1)
                                                                        {
                                                                                Triangle_State=2;
                                                                                LineTo( pdc, Touch_Position.x,Touch_Position.y);//将第一个点与第二个点连接
                                                                                MoveTo(pdc, Touch_Position.x, Touch_Position.y);
                                                                        }
                                                                        else
                                                                        {
                                                                                 
                                                                                  LineTo( pdc, Touch_Position.x,Touch_Position.y);//将第二个点与第三个点连接
                                                                                  MoveTo(pdc, Touch_Position.x, Touch_Position.y);
                                                                                  LineTo( pdc,x0,y0);//与第一个点连接
                                                                                  Triangle_State=0; //三角形画完结束
                                                                        }
                                                                }
                                                                break;
                                                        case 5:
                                                            if(pMsg->LParam==TCHSCR_ACTION_CLICK)  // rectangle
                                                                {
                                                                        if(Rect_State==0)
                                                                        {
                                                                               
                                                                                x0=Touch_Position.x;
                                                                                y0=Touch_Position.y; //保存第一个触摸点
                                                                                Rect_State=1;
                                                                               
                                                                        }
                                                                        else
                                                                        {
                                                                                Rect_State=0;
                                                                                DrawRectFrame(pdc,x0,y0,Touch_Position.x,Touch_Position.y);
                                                                        }
                                                                }
                                                                break;
                                                        default:
                                                                break;
                                                }
                                        }
                                        else if(IsInRect2(pBack_Button_RECT, pTouch_Position)) // 电子画板返回按钮
                                        {
                                                Frame_State = 0;
                                                ClearScreen();
                                                DrawButton(pFirst_Button);
                                                DrawButton(pThird_Button);
                                                DrawButton(pSecond_Button);
                                                DrawWindow(pDraw_Wnd);
                                                ShowBmp(pdc,bmpname,130,20);
                                                TextOut(pdc,200,160,Class_Caption_16,TRUE,FONTSIZE_SMALL);
                                                   TextOut(pdc,200,180,Name_Caption_16,TRUE,FONTSIZE_SMALL);
                                               
                                        }
                                   
        }
        else if(Frame_State==2)//流程图返回按钮
               {
                if(IsInRect2(pBack2_Button_RECT, pTouch_Position))
                                        {
                                                Frame_State = 0;
                                                ClearScreen();
                                                DrawButton(pFirst_Button);
                                                DrawButton(pThird_Button);
                                                DrawButton(pSecond_Button);
                                                DrawWindow(pDraw_Wnd);
                                                ShowBmp(pdc,bmpname,130,20);
                                                TextOut(pdc,200,160,Class_Caption_16,TRUE,FONTSIZE_SMALL);
                                            TextOut(pdc,200,180,Name_Caption_16,TRUE,FONTSIZE_SMALL);
                                               
                                        }               
               }
               else if(Frame_State==3)//滚动字幕
               {

                        if(IsInRect2(pLeftToRight_Button_RECT, pTouch_Position)) //从左到右滚动字
                        {
                                 Word_Position=135;//初始化定在left 的135 位置
                                 FillRect2(pdc,pShow_Word2_RECT,GRAPH_MODE_NORMAL,RGB(255,255,255));
                                 do{
                                                 
                                          OSTimeDly(100);//延时
                                          FillRect2(pdc,pShow_Word_RECT,GRAPH_MODE_NORMAL,RGB(255,255,255));//清除字符串区
                                          //显示字符串
                                          TextOut(pdc,Word_Position,100,Show_Word_Caption_16,TRUE,FONTSIZE_SMALL);
                                          Word_Position+=5;//计算下一个位置
                                          //是否到边界(while)
                                        }while(Word_Position<260);

                        }
                        else if(IsInRect2(pUpToDown_Button_RECT,pTouch_Position)) //从上到下滚动字
                        {
                                Word_Position=20;//初始化定义在top:20的位置
                                 FillRect2(pdc,pShow_Word_RECT,GRAPH_MODE_NORMAL,RGB(255,255,255));
                                do{
                                       
                                          OSTimeDly(100);//延时
                                          FillRect2(pdc,pShow_Word2_RECT,GRAPH_MODE_NORMAL,RGB(255,255,255));//清除字符串区
                                          //显示字符串
                                          TextOut(pdc,135,Word_Position,Show_Word_Caption_16,TRUE,FONTSIZE_SMALL);
                                          Word_Position+=5;//计算下一个位置
                                          //是否到边界(while)
                                        }while(Word_Position<170);

                        }
                        else if(IsInRect2(pBack2_Button_RECT, pTouch_Position))  //滚动字幕的返回主界面按钮
                                        {
                                                Frame_State = 0;
                                                ClearScreen();
                                                DrawButton(pFirst_Button);
                                                DrawButton(pThird_Button);
                                                DrawButton(pSecond_Button);
                                                DrawWindow(pDraw_Wnd);
                                                ShowBmp(pdc,bmpname,130,20);
                                                TextOut(pdc,200,160,Class_Caption_16,TRUE,FONTSIZE_SMALL);
                                                    TextOut(pdc,200,180,Name_Caption_16,TRUE,FONTSIZE_SMALL);
                                               
                                        }       
               }
               break;
                case OSM_KEY://键盘消息
                        if(Frame_State==2)
                        {
                               
                                if(pMsg->WParam==14)//Enter键的键值
                                {
                               
                                        if(Key_Counter == 0)
                                        {
                                                        MoveTo(pdc, 198, 27);
                                                        LineTo(pdc, 246, 27);
                                                        LineTo(pdc,253,20);
                                                        LineTo(pdc,246,13);
                                                        LineTo(pdc, 198, 13);
                                                        LineTo(pdc,191,20);
                                                        LineTo(pdc,198,27);
                                                        TextOut(pdc,203,15,Process_Chart_1_Caption_16,TRUE,FONTSIZE_SMALL);//textout "start"
                                                        MoveTo(pdc, 221, 27);
                                                        LineTo(pdc, 221, 37);
                                                        DrawRectFrame(pdc, 168, 37, 273, 55);//left,top,right,bottom
                                                        TextOut(pdc, 180, 41, Process_Chart_2_Caption_16,TRUE, FONTSIZE_SMALL); //textout"input a,b,c"
                                        }
                                        else if(Key_Counter == 1)
                                        {
                                                        MoveTo(pdc,221, 53);
                                                        LineTo(pdc, 221, 59);
                                                        LineTo(pdc, 189, 75);
                                                        LineTo(pdc, 221, 91);
                                                        LineTo(pdc, 253, 75);
                                                        LineTo(pdc, 221, 59);
                                                        TextOut(pdc, 211, 72, Process_Chart_3_Caption_16, TRUE, FONTSIZE_SMALL);//textout"a>b"
                                                        MoveTo(pdc, 189, 75);
                                                        LineTo(pdc, 166, 75);
                                                        LineTo(pdc, 166, 89);
                                                        TextOut(pdc, 178, 62, Process_Chart_4_Caption_16, TRUE, FONTSIZE_SMALL);//textout"T"
                                                        MoveTo(pdc, 253, 75);
                                                        LineTo(pdc, 267, 75);
                                                        LineTo(pdc, 267, 89);
                                                        TextOut(pdc, 255, 62, Process_Chart_5_Caption_16, TRUE, FONTSIZE_SMALL);//textout"F"
                                                        DrawRectFrame(pdc, 138, 89, 193, 103);
                                                        TextOut(pdc, 143, 90, Process_Chart_6_Caption_16, TRUE, FONTSIZE_SMALL);//textout"MAX<-A"
                                                        DrawRectFrame(pdc, 239, 89, 294, 103);
                                                        TextOut(pdc, 245, 90, Process_Chart_7_Caption_16, TRUE, FONTSIZE_SMALL);//textout"MAX<-B"

                                        }
                                                       
                                        else if(Key_Counter == 2)
                                        {
                                                        MoveTo(pdc, 166, 103);
                                                        LineTo(pdc, 166, 112);
                                                        MoveTo(pdc, 267, 103);
                                                        LineTo(pdc, 267, 112);
                                                        LineTo(pdc, 166, 112);
                                                        MoveTo(pdc, 221, 112);
                                                        LineTo(pdc, 221, 117);
                                                        LineTo(pdc, 189, 133);
                                                        LineTo(pdc, 221, 149);
                                                        LineTo(pdc, 253, 133);
                                                        LineTo(pdc, 221, 117);
                                                        TextOut(pdc, 205, 129, Process_Chart_8_Caption_16, TRUE, FONTSIZE_SMALL);//textout"C>MAX"
                                                        MoveTo(pdc, 189, 133);
                                                        LineTo(pdc, 166, 133);
                                                        LineTo(pdc, 166, 151);
                                                        TextOut(pdc, 178,121, Process_Chart_4_Caption_16, TRUE, FONTSIZE_SMALL);//textout"T"
                                                        DrawRectFrame(pdc, 138, 151, 193, 165);
                                                        TextOut(pdc, 143, 153, Process_Chart_9_Caption_16, TRUE, FONTSIZE_SMALL);//textout"MAX<-C"
                                                       
                                        }
                                                       
                                        else if(Key_Counter == 3)
                                        {
                                                        TextOut(pdc, 255, 121, Process_Chart_5_Caption_16, TRUE, FONTSIZE_SMALL);//textout"F"
                                                        MoveTo(pdc, 253, 133);
                                                        LineTo(pdc, 267, 133);
                                                        LineTo(pdc, 267, 173);
                                                        MoveTo(pdc, 166, 165);
                                                        LineTo(pdc, 166, 173);
                                                        LineTo(pdc, 267, 173);
                                                        MoveTo(pdc, 216, 173);
                                                        LineTo(pdc, 216, 184);
                                                        DrawRectFrame(pdc, 164, 184, 269, 200);
                                                        TextOut(pdc, 180, 187, Process_Chart_10_Caption_16, TRUE, FONTSIZE_SMALL);//textout"Output Max"
                                                        MoveTo(pdc, 216, 200);
                                                        LineTo(pdc, 216, 205);
                                                        MoveTo(pdc, 193, 219);
                                                        LineTo(pdc, 241, 219);
                                                        LineTo(pdc,248,212);
                                                        LineTo(pdc,241,205);
                                               
                                                        LineTo(pdc, 193, 205);
                                                        LineTo(pdc,186,212);
                                                        LineTo(pdc,193,219);
                                                       
                                                        TextOut(pdc,207,207,Process_Chart_11_Caption_16,TRUE,FONTSIZE_SMALL);//textout"End"
                                                       
                                        }
                                       
                                                       
                                        if(Key_Counter>=3)
                                        {
                                                Key_Counter=0;
                                        }
                                        else
                                        {
                                                Key_Counter++;
                                        }
                                        OSOnSysMessage(pMsg);
                                }
                                else
                                {
                                        OSOnSysMessage(pMsg);
                                }
                        }
                        break;
          }
          DeleteMessage(pMsg);
                OSTimeDly(100);
        }
}

使用特权

评论回复
9
pollutiond|  楼主 | 2011-4-5 14:27 | 只看该作者
如何结合 如何加。。

使用特权

评论回复
10
pollutiond|  楼主 | 2011-4-5 15:40 | 只看该作者
一段程序里可以有2个FOR消息循环么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

粉丝