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

📄 draw.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 5 页
字号:
    y=(fsmaxcolume-fs[i].colume)*fscolumeheight/fsmaxcolume       +fscolumey;    gdk_draw_line(g->pixmap,penfscolume,              x,y,x,fscolumey+fscolumeheight);    }}void stockDraw::drawJsfsScreen(){    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];

        gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              jsfspricex,jsfspricey,
              jsfspricewidth,
              jsfspriceheight);
    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              jsfscolumex,jsfscolumey,
              jsfscolumewidth,
              jsfscolumeheight);
     fpl=6;     fcl=4;    for(i=1;i<fpl;i++){      gdk_draw_line(g->pixmap,penframeline,              jsfspricex,jsfspricey+jsfspriceheight*i/fpl,              jsfspricex+jsfspricewidth,              jsfspricey+jsfspriceheight*i/fpl);    }    gdk_draw_line(g->pixmap,penframeline,            jsfspricex,jsfspricey+jsfspriceheight/2+1,            jsfspricex+jsfspricewidth,            jsfspricey+jsfspriceheight/2+1);    gdk_draw_line(g->pixmap,penframeline,            jsfspricex,jsfspricey+jsfspriceheight/2-1,            jsfspricex+jsfspricewidth,            jsfspricey+jsfspriceheight/2-1);//画分割价格    jg=(gpmx.zsp>0)?gpmx.zsp:1;    sprintf(tmp,"%6.2f",jg);    jg=jg*100;    tmpzsp=(int)jg; 
  gdk_draw_string(g->pixmap,           efont,penequal,           gpmxareax,jsfspricey+jsfspriceheight/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,"%6.2f",jg);  
  gdk_draw_string(g->pixmap,            efont,penup,            gpmxareax,            jsfspricey+jsfspriceheight/2-jsfspriceheight*i/fpl+5,            tmp);     jg=tmpzsp-i*fjc;     jg=jg/100;     sprintf(tmp,"%6.2f",jg);  
  gdk_draw_string(g->pixmap,            efont,pendown,            gpmxareax,            jsfspricey+jsfspriceheight/2+jsfspriceheight*i/fpl+5,            tmp);    }        for(i=1;i<fcl;i++){      gdk_draw_line(g->pixmap,penframeline,            jsfscolumex,jsfscolumey+jsfscolumeheight*i/fcl,            jsfscolumex+jsfscolumewidth,            jsfscolumey+jsfscolumeheight*i/fcl);    }//画分割成交量//    jc=gpmx.zss;    fsmaxcolume=getMaxFsColume();    jg=fsmaxcolume/fcl;    for(i=1;i<fcl;i++){     sprintf(tmp,"%6.0f",jg*i);  
  gdk_draw_string(g->pixmap,            efont,penequal,            gpmxareax,jsfscolumey+jsfscolumeheight*(fcl-i)/fcl+5,            tmp);    }          for(i=1;i<8;i++){      if((i/2+1)==(i+1)/2){        gdk_draw_line(g->pixmap,penlayoutline,               jsfspricex+jsfspricewidth*i/8,jsfspricey,               jsfspricex+jsfspricewidth*i/8,               jsfscolumey+jsfscolumeheight);      }      else{                                    gdk_draw_line(g->pixmap,penframeline,               jsfspricex+jsfspricewidth*i/8,jsfspricey,               jsfspricex+jsfspricewidth*i/8,               jsfscolumey+jsfscolumeheight);      }    }}void stockDraw::drawJsfsPrice(){    int x,x1,y,y1;    int i;    int tmpjc,tmpzsp,tmpzgj;    float jg;        if(!frechfsflag)       return;        jg=gpmx.zsp*100;    tmpzsp=(int)jg;    tmpjc=ABS(fspricezgj-tmpzsp)>ABS(fspricezdj-tmpzsp)?       ABS(fspricezgj-tmpzsp):ABS(fspricezdj-tmpzsp);    tmpzgj=tmpzsp+tmpjc;    tmpjc=tmpjc*2;          for(i=0;i<fssum-1 && i<MAXFSLINENUM-1;i++){    x=jsfspricex+jsfspricewidth*(i+1)/MAXFSLINENUM;     x1=jsfspricex+jsfspricewidth*(i+2)/MAXFSLINENUM;;    y=(tmpzgj-fs[i].price)*jsfspriceheight/tmpjc+jsfspricey;    y1=(tmpzgj-fs[i+1].price)*jsfspriceheight/tmpjc+jsfspricey;    gdk_draw_line(g->pixmap,penfsline,x,y,x1,y1);    y=(tmpzgj-fs[i].avgprice)*jsfspriceheight/tmpjc+jsfspricey;    y1=(tmpzgj-fs[i+1].avgprice)*jsfspriceheight/tmpjc+jsfspricey;    gdk_draw_line(g->pixmap,penfsavgline,x,y,x1,y1);  }}void stockDraw::drawJsfsColume(){    int x,y;    int i;        if(!frechfsflag)       return;           for(i=0;i<fssum && i<MAXFSLINENUM;i++){    x=jsfscolumex+jsfscolumewidth*(i+1)/MAXFSLINENUM;     y=(fsmaxcolume-fs[i].colume)*jsfscolumeheight/fsmaxcolume       +jsfscolumey;    gdk_draw_line(g->pixmap,penfscolume,              x,y,x,jsfscolumey+jsfscolumeheight);    }}void stockDraw::drawStockTrace(){   int i;   char tmp[20];//   char tmptime[20];   GdkGC *pentmp;      gdk_draw_rectangle (g->pixmap,
             penframeline,             FALSE,
             tracex,tracey,
             tracewidth,
             traceheight);
   for(i=0;i<MAXTRACENUM && i<tracesum;i++){     sprintf(tmp,"%04d",trace[i].time);     tmp[4]=tmp[3];     tmp[3]=tmp[2];     tmp[2]=':';      tmp[5]='\0';  
  gdk_draw_string(g->pixmap,            efont,penwhite,            tracex+2,            tracey+(i+1)*18-5,            tmp);      if(trace[i].price>gpmx.zsp)         pentmp=penup;      else if(trace[i].price == gpmx.zsp)         pentmp=penequal;      else         pentmp=pendown;     sprintf(tmp,"%8.2f",trace[i].price);  
  gdk_draw_string(g->pixmap,            efont,pentmp,            tracex+2*CHARWIDTH,            tracey+(i+1)*18-5,            tmp);           sprintf(tmp,"%8.0f",trace[i].colume);  
  gdk_draw_string(g->pixmap,            efont,penequal,            tracex+6*CHARWIDTH,            tracey+(i+1)*18-5,            tmp);     if(trace[i].bz=='1')    
  gdk_draw_string(g->pixmap,             efont,penup,             tracex+9*CHARWIDTH,             tracey+(i+1)*18-5,             "↑");     else    
  gdk_draw_string(g->pixmap,            efont,pendown,            tracex+9*CHARWIDTH,            tracey+(i+1)*18-5,            "↓");           } }void stockDraw::drawZsfsScreen(){    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];
   if(strcmp(stockcode,"1A0001")==0) 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex,15,"上证领先");   else 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex,15,"深圳领先");    sprintf(tmp,"涨跌:%7.2f",gpmx.zd); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex+CHARWIDTH*5,15,tmp);    sprintf(tmp,"幅度:%6.2f",gpmx.zdf);    strcat(tmp,"%"); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex+CHARWIDTH*11,15,tmp);    sprintf(tmp,"最高:%7.2f",gpmx.zgj); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex+CHARWIDTH*17,15,tmp);    sprintf(tmp,"最低:%7.2f",gpmx.zdj); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex+CHARWIDTH*23,15,tmp);    sprintf(tmp,"昨收:%7.2f",gpmx.zsp); 
  gdk_draw_string(g->pixmap,                    srfont,penfont,                    zsfspricex+CHARWIDTH*29,15,tmp);                        gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              zsfspricex,zsfspricey,
              zsfspricewidth,
              zsfspriceheight);
    gdk_draw_rectangle (g->pixmap,
              penframeline,              FALSE,
              zsfscolumex,zsfscolumey,
              zsfscolumewidth,
              zsfscolumeheight);
      fpl=14;      fcl=9;    for(i=1;i<fpl;i++){      gdk_draw_line(g->pixmap,penframeline,              zsfspricex,zsfspricey+zsfspriceheight*i/fpl,              zsfspricex+zsfspricewidth,              zsfspricey+zsfspriceheight*i/fpl);    }    gdk_draw_line(g->pixmap,penframeline,            zsfspricex,zsfspricey+zsfspriceheight/2+1,            zsfspricex+zsfspricewidth,            zsfspricey+zsfspriceheight/2+1);    gdk_draw_line(g->pixmap,penframeline,            zsfspricex,zsfspricey+zsfspriceheight/2-1,            zsfspricex+zsfspricewidth,            zsfspricey+zsfspriceheight/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,zsfspricey+zsfspriceheight/2+5,           tmp);    sprintf(tmp,"0.00");    strcat(tmp,"%");    gdk_draw_string(g->pixmap,            efont,penequal,            zsfspricex+zsfspricewidth,            zsfspricey+zsfspriceheight/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,            zsfspricey+zsfspriceheight/2-zsfspriceheight*i/fpl+5,            tmp);     jg=tmpzsp-i*fjc;     jg=jg/100;       sprintf(tmp,"%7.2f",jg);  
  gdk_draw_string(g->pixmap,            efont,pendown,CHARADD,            zsfspricey+zsfspriceheight/2+zsfspriceheight*i/fpl+5,            tmp);     jg=fjc*i*100/tmpzsp;    sprintf(tmp,"%3.2f",jg);    strcat(tmp,"%");    gdk_draw_string(g->pixmap,            efont,penup,            zsfspricex+zsfspricewidth,            zsfspricey+zsfspriceheight/2-zsfspriceheight*i/fpl+5,            tmp);    gdk_draw_string(g->pixmap,            efont,pendown,            zsfspricex+zsfspricewidth,            zsfspricey+zsfspriceheight/2+zsfspriceheight*i/fpl+5,            tmp);    }        for(i=1;i<fcl;i++){      gdk_draw_line(g->pixmap,penframeline,            zsfscolumex,zsfscolumey+zsfscolumeheight*i/fcl,            zsfscolumex+zsfscolumewidth,            zsfscolumey+zsfscolumeheight*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,zsfscolumey+zsfscolumeheight*(fcl-i)/fcl+5,            tmp);    }          for(i=1;i<8;i++){      if((i/2+1)==(i+1)/2){        gdk_draw_line(g->pixmap,penlayoutline,               zsfspricex+zsfspricewidth*i/8,zsfspricey,               zsfspricex+zsfspricewidth*i/8,               zsfscolumey+zsfscolumeheight);      }      else{                                    gdk_draw_line(g->pixmap,penframeline,               zsfspricex+zsfspricewidth*i/8,zsfspricey,               zsfspricex+zsfspricewidth*i/8,               zsfscolumey+zsfscolumeheight);      }    }
  gdk_draw_string(g->pixmap,efont,penwhite,         zsfspricex-CHARWIDTH,         zsfscolumey+zsfscolumeheight+15,"9:30");
  gdk_draw_string(g->pixmap,efont,penwhite,         zsfspricex+zsfspricewidth/4-CHARWIDTH,         zsfscolumey+zsfscolumeheight+15,"10:30");
  gdk_draw_string(g->pixmap,efont,penwhite,         zsfspricex+zsfspricewidth/2-CHARWIDTH,         zsfscolumey+zsfscolumeheight+15,"11:30");
  gdk_draw_string(g->pixmap,efont,penwhite,         zsfspricex+zsfspricewidth*3/4-CHARWIDTH,         zsfscolumey+zsfscolumeheight+15,"14:00");
  gdk_draw_string(g->pixmap,efont,penwhite,         zsfspricex+zsfspricewidth-CHARWIDTH,         zsfscolumey+zsfscolumeheight+15,"15:00");}void stockDraw::drawZsfsLine(){    int x,x1,y,y1;    int i;    int tmpjc,tmpzsp,tmpzgj;    float jg;        if(!frechfsflag)       return;        jg=gpmx.zsp*100;    tmpzsp=int(jg);    tmpjc=ABS(fspricezgj-tmpzsp)>ABS(fspricezdj-tmpzsp)?       ABS(fspricezgj-tmpzsp):ABS(fspricezdj-tmpzsp);    tmpzgj=tmpzsp+tmpjc;    tmpjc=tmpjc*2;    for(i=0;i<fssum-1 && i<MAXFSLINENUM-1;i++){      x=zsfspricex+zsfspricewidth*(i+1)/MAXFSLINENUM;       x1=zsfspricex+zsfspricewidth*(i+2)/MAXFSLINENUM;;      y=(tmpzgj-fs[i].price)*zsfspriceheight/tmpjc+zsfspricey;      y1=(tmpzgj-fs[i+1].price)*zsfspriceheight/tmpjc+zsfspricey;      gdk_draw_line(g->pixmap,penfsline,x,y,x1,y1);      y=(tmpzgj-fs[i].avgprice)*zsfspriceheight/tmpjc+zsfspricey;    y1=(tmpzgj-fs[i+1].avgprice)*zsfspriceheight/tmpjc+zsfspricey;      gdk_draw_line(g->pixmap,penfsavgline,x,y,x1,y1);    }}void stockDraw::drawZsfsColume(){    int x,y;    int i;        if(!frechfsflag)       return;           for(i=0;i<fssum && i<MAXFSLINENUM;i++){    x=zsfscolumex+zsfscolumewidth*(i+1)/MAXFSLINENUM;     y=(fsmaxcol

⌨️ 快捷键说明

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