📄 draw.c
字号:
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 + -