⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 5 页
字号:
    switch(linetype)    {      case 1:     
  gdk_draw_string(g->pixmap,                     srfont,penfont,                     CHARADD,CHARHEIGHT+15,"K线图");                     break;      case 2:     
  gdk_draw_string(g->pixmap,                     srfont,penfont,                     CHARADD,CHARHEIGHT+15,"美国线");                     break;      default:     
  gdk_draw_string(g->pixmap,                     srfont,penfont,                     CHARADD,CHARHEIGHT+15,"X线图");                     break;     }                
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    CHARADD,columeareay-CHARHEIGHT+15,"成交量"); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    CHARADD,zbareay-CHARHEIGHT+15,curjszbname);    /*画股票价格和分割线*/    gdk_draw_line(g->pixmap,penlayoutline,          klineareax,klineareay+klineareaheight/3,          klineareax+klineareawidth,klineareay+klineareaheight/3);    gdk_draw_line(g->pixmap,penlayoutline,          klineareax,klineareay+klineareaheight*2/3,          klineareax+klineareawidth,klineareay+klineareaheight*2/3);     areazgj=getAreazgj(areastart,areastart+areaklinenum);    areazdj=getAreazdj(areastart,areastart+areaklinenum);    tmp2 = areazgj;    tmp3 = areazdj;    for(i=0;i<areaklinenum && areastart+i<=stocksum;i++){        tmp1=getAverageLine(areastart+i,30);        if(tmp2<tmp1) tmp2=tmp1;        if(tmp3>tmp1) tmp3=tmp1;        tmp1=getAverageLine(areastart+i,10);        if(tmp2<tmp1) tmp2=tmp1;        if(tmp3>tmp1) tmp3=tmp1;        tmp1=getAverageLine(areastart+i,5);        if(tmp2<tmp1) tmp2=tmp1;        if(tmp3>tmp1) tmp3=tmp1;    }    if(tmp2 > areazgj) areazgj=tmp2;           if(tmp3 < areazdj) areazdj=tmp3;           jg=areazgj;    jg=jg/100;     sprintf(jgstr,"%3.2f",jg);//    printf("\n%d  %f %s\n",areazgj,jg,jgstr);  
  gdk_draw_string(g->pixmap,                    efont,penfont,                    CHARADD,klineareay+15,jgstr);    jg=areazdj;    jg=jg/100;     sprintf(jgstr,"%3.2f",jg);//    printf("\n%d  %f %s\n",areazdj,jg,jgstr);  
  gdk_draw_string(g->pixmap,                    efont,penfont,                    CHARADD,klineareay+klineareaheight-5,jgstr);    jg=areazdj+(areazgj-areazdj)/3;    jg=jg/100;     sprintf(jgstr,"%3.2f",jg); 
  gdk_draw_string(g->pixmap,                    efont,penfont,                   CHARADD,klineareay+15+klineareaheight*2/3,jgstr);    jg=areazdj+(areazgj-areazdj)*2/3;    jg=jg/100;     sprintf(jgstr,"%3.2f",jg); 
  gdk_draw_string(g->pixmap,                    efont,penfont,                    CHARADD,klineareay+15+klineareaheight/3,jgstr);  /*画成交量和成交量分割线*/    areacjl=getAreacjl(areastart,areastart+areaklinenum);    gdk_draw_line(g->pixmap,penlayoutline,      columeareax,columeareay+columeareaheight/3,      columeareax+columeareawidth,columeareay+columeareaheight/3);     gdk_draw_line(g->pixmap,penlayoutline,      columeareax,columeareay+columeareaheight*2/3,      columeareax+columeareawidth,columeareay+columeareaheight*2/3);    tmp2 = areacjl;    for(i=0;i<areaklinenum && areastart+i<=stocksum;i++){        tmp1=getAverageColume(areastart+i,10);        if(tmp2<tmp1) tmp2=tmp1;        tmp1=getAverageColume(areastart+i,5);        if(tmp2<tmp1) tmp2=tmp1;    }    if(tmp2 > areacjl) areacjl=tmp2;           sprintf(cjstr,"%ld",areacjl); 
  gdk_draw_string(g->pixmap,                  efont,penfont,                  CHARADD,columeareay+10,cjstr);    sprintf(cjstr,"%ld",areacjl*2/3); 
  gdk_draw_string(g->pixmap,                  efont,penfont,                  CHARADD,columeareay+columeareaheight/3+5,cjstr);    sprintf(cjstr,"%ld",areacjl/3); 
  gdk_draw_string(g->pixmap,                  efont,penfont,                  CHARADD,columeareay+columeareaheight*2/3+5,cjstr);}void drawFsScreen(GtkWidget *drawing_area){    char tmp[256];    int jc,tmpzsp;    int i;    int fpl;    int fcl;//    char jgstr[20];    float jg,fjc;//    long tmp1,tmp2,tmp3;//    char cjstr[20];

        sprintf(tmp,"分时线:%s",stockname);//    printf("%s\n",tmp); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    fspricex+CHARADD,15,tmp);    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              fspricex,fspricey,
              fspricewidth,
              fspriceheight);
    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              fscolumex,fscolumey,
              fscolumewidth,
              fscolumeheight);
    if(fszbflag){    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              fszbx,fszby,
              fszbwidth,
              fszbheight);
    }    if(fszbflag){      fpl=8;      fcl=5;    }    else{      fpl=14;      fcl=9;    }    for(i=1;i<fpl;i++){      gdk_draw_line(g->pixmap,penframeline,              fspricex,fspricey+fspriceheight*i/fpl,              fspricex+fspricewidth,fspricey+fspriceheight*i/fpl);    }    gdk_draw_line(g->pixmap,penframeline,            fspricex,fspricey+fspriceheight/2+1,            fspricex+fspricewidth,fspricey+fspriceheight/2+1);    gdk_draw_line(g->pixmap,penframeline,            fspricex,fspricey+fspriceheight/2-1,            fspricex+fspricewidth,fspricey+fspriceheight/2-1);//画分割价格    jg=(gpmx.zsp>0)?gpmx.zsp:1;    sprintf(tmp,"%7.2f",jg);    jg=jg*100;    tmpzsp=(int)jg; 
  gdk_draw_string(g->pixmap,           efont,penequal,           CHARADD,fspricey+fspriceheight/2+5,           tmp);    sprintf(tmp,"0.00");    strcat(tmp,"%");    gdk_draw_string(g->pixmap,            efont,penequal,            fspricex+fspricewidth,fspricey+fspriceheight/2+5,            tmp);    fspricezgj=getFsPriceZgj();    fspricezdj=getFsPriceZdj();     if(fspricezgj == 0 || fspricezdj == 0){        fspricezgj=tmpzsp+fpl/2;        fspricezdj=tmpzsp-fpl/2;     }    jc=ABS(fspricezgj-tmpzsp)>ABS(fspricezdj-tmpzsp)?        ABS(fspricezgj-tmpzsp):ABS(fspricezdj-tmpzsp);     //    jc=ABS(gpmx.zgj-gpmx.zsp)>ABS(gpmx.zdj-gpmx.zsp)?//        ABS(gpmx.zgj-gpmx.zsp):ABS(gpmx.zdj-gpmx.zsp);    fjc=jc;     fjc=fjc*2/fpl;    for(i=1;i<=fpl/2;i++){     jg=tmpzsp+i*fjc;     jg=jg/100;       sprintf(tmp,"%7.2f",jg);  
  gdk_draw_string(g->pixmap,            efont,penup,            CHARADD,fspricey+fspriceheight/2-fspriceheight*i/fpl+5,            tmp);     jg=tmpzsp-i*fjc;     jg=jg/100;       sprintf(tmp,"%7.2f",jg);  
  gdk_draw_string(g->pixmap,            efont,pendown,            CHARADD,fspricey+fspriceheight/2+fspriceheight*i/fpl+5,            tmp);     jg=fjc*i*100/tmpzsp;    sprintf(tmp,"%3.2f",jg);    strcat(tmp,"%");    gdk_draw_string(g->pixmap,            efont,penup,            fspricex+fspricewidth,            fspricey+fspriceheight/2-fspriceheight*i/fpl+5,            tmp);    gdk_draw_string(g->pixmap,            efont,pendown,            fspricex+fspricewidth,            fspricey+fspriceheight/2+fspriceheight*i/fpl+5,            tmp);    }        for(i=1;i<fcl;i++){      gdk_draw_line(g->pixmap,penframeline,            fscolumex,fscolumey+fscolumeheight*i/fcl,            fscolumex+fscolumewidth,fscolumey+fscolumeheight*i/fcl);    }//画分割成交量//    jc=gpmx.zss;    fsmaxcolume=getMaxFsColume();    jg=fsmaxcolume/fcl;    for(i=0;i<fcl;i++){     sprintf(tmp,"%7.0f",jg*i);  
  gdk_draw_string(g->pixmap,            efont,penequal,            CHARADD,fscolumey+fscolumeheight*(fcl-i)/fcl+5,            tmp);    }          if(fszbflag){     for(i=1;i<5;i++){      gdk_draw_line(g->pixmap,penframeline,              fszbx,fszby+fszbheight*i/5,              fszbx+fszbwidth,fszby+fszbheight*i/5);     }    }    for(i=1;i<8;i++){      if((i/2+1)==(i+1)/2){        gdk_draw_line(g->pixmap,penlayoutline,               fspricex+fspricewidth*i/8,fspricey,               fspricex+fspricewidth*i/8,fscolumey+fscolumeheight);      }      else{                                    gdk_draw_line(g->pixmap,penframeline,               fspricex+fspricewidth*i/8,fspricey,               fspricex+fspricewidth*i/8,fscolumey+fscolumeheight);      }    }
  gdk_draw_string(g->pixmap,efont,penwhite,    fspricex-CHARWIDTH,fszby+fszbheight+15,"9:30");
  gdk_draw_string(g->pixmap,efont,penwhite,    fspricex+fspricewidth/4-CHARWIDTH,fszby+fszbheight+15,"10:30");
  gdk_draw_string(g->pixmap,efont,penwhite,    fspricex+fspricewidth/2-CHARWIDTH,fszby+fszbheight+15,"11:30");
  gdk_draw_string(g->pixmap,efont,penwhite,    fspricex+fspricewidth*3/4-CHARWIDTH,fszby+fszbheight+15,"14:00");
  gdk_draw_string(g->pixmap,efont,penwhite,    fspricex+fspricewidth-CHARWIDTH,fszby+fszbheight+15,"15:00");     }void drawStatusBar(void){   float shzf;   float shzfbl;   float shcjsl;   float shcjje;   float szzf;   float szzfbl;   float szcjsl;   float szcjje;   char shstr[256];   char szstr[256];      shzf=0;   shzfbl=0;   shcjsl=0;   shcjje=0;   szzf=0;   szzfbl=0;   szcjsl=0;   szcjje=0;   gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              statusbarx,statusbary,
              statusbarwidth,
              statusbarheight);
   gdk_draw_line(g->pixmap,penframeline,                  statusbarwidth-200,statusbary,                  statusbarwidth-200,statusbary+statusbarheight);   gdk_draw_line(g->pixmap,penframeline,                  statusbarwidth-100,statusbary,                  statusbarwidth-100,statusbary+statusbarheight);   gdk_draw_line(g->pixmap,penframeline,                  statusbarx+290,statusbary,                  statusbarx+290,statusbary+statusbarheight);   sprintf(shstr,"上证 %3.2f %3.2f %8.0f手 %8.0f万",           shzf,shzfbl,shcjsl,shcjje);   sprintf(szstr,"深证 %3.2f %3.2f %8.0f手 %8.0f万",           szzf,szzfbl,szcjsl,szcjje);   
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   statusbarx+1,statusbary+15,shstr);   
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   statusbarx+292,statusbary+15,szstr);   }void drawGpmx(void){   char tmp[200];    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              gpmxareax,gpmxareay,
              gpmxareawidth,
              gpmxareaheight);
   sprintf(tmp,"%s %s",stockname,stockcode);
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+50,gpmxareay-5,tmp);   gdk_draw_line(g->pixmap,penframeline,               gpmxareax,gpmxareay+CHARHEIGHT,               gpmxareax+gpmxareawidth,gpmxareay+CHARHEIGHT);   gdk_draw_line(g->pixmap,penframeline,               gpmxareax,gpmxareay+CHARHEIGHT*4,               gpmxareax+gpmxareawidth,gpmxareay+CHARHEIGHT*4);   gdk_draw_line(g->pixmap,penframeline,               gpmxareax,gpmxareay+CHARHEIGHT*5,               gpmxareax+gpmxareawidth,gpmxareay+CHARHEIGHT*5);   gdk_draw_line(g->pixmap,penframeline,               gpmxareax,gpmxareay+CHARHEIGHT*8,               gpmxareax+gpmxareawidth,gpmxareay+CHARHEIGHT*8);   gdk_draw_line(g->pixmap,penframeline,               gpmxareax,gpmxareay+CHARHEIGHT*13,               gpmxareax+gpmxareawidth,gpmxareay+CHARHEIGHT*13);
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT-5,"委比");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*2-5,"卖三");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*3-5,"卖二");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*4-5,"卖一");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*5-5,                   "买入        卖出");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*6-5,"买一");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*7-5,"买二");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*8-5,"买三");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*9-5,                   "成交        均价");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*10-5,                   "涨跌        开盘");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*11-5,                   "幅度        最高");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*12-5,                   "总手        最低");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*13-5,                   "现手        量比");
  gdk_draw_string(g->pixmap,                   efont,penwhite,                   gpmxareax+1,gpmxareay+CHARHEIGHT*14-5,                   "外盘        内盘");}gint drawTime(GtkWidget *widget){  char tmpstr[256];  time_t t;  tm *ti;    ti=(tm *)malloc(sizeof(tm));  time(&t);  ti=localtime(&t);  sprintf(tmpstr,"%02d:%02d:%02d",      ti->tm_hour,ti->tm_min,ti->tm_sec);//  printf("time:%s",tmpstr);    gdk_draw_rectangle (drawing_area->window,
              penbackground,              TRUE,
              statusbarwidth-99,statusbary+1,
              98,statusbarheight-2);  gdk_draw_string(drawing_area->window,                  efont,penwhite,                  statusbarwidth-80,statusbary+15,                  tmpstr);  return(TRUE);    }void drawAline(int wherearea,int anum,int num){    int x,y,x1,y1;     int ry;    int tmpjc;     int areax,areay,areaheight;    if(frechflag == 0)        return;            switch(wherearea){        case KLINEAREA:           areax=klineareax;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -