stststst 发表于 2007-11-18 07:59

有 人用c写了窗口界面代码,我现在用wxWidgets-2.8.6 做dvcpp的图形库,可以实现么

<P>如题,我现 用的是devcpp4.9.9.2和wxWidgets-2.8.6,有朋友会实现下面这个代码实现的画模拟窗口功能么???<br><br>#include&lt;graphics.h&gt;<br>#include&lt;conio.h&gt;<br>void drawColScrollBarUnAct(int,int,int,int);<br>void drawRowScrollBarUnAct(int,int,int);<br>void DrawAreaForScorollBax(int,int,int,int);/*类似setfillstyle(9,7)*/<br>void drawSmallBox(int,int,int,int);/*画小窗口*/<br>void drawBigBox(int,int,int,int);<br>void drawFolder(int,int);/*画文件夹*/<br>void drawButton(int,int,int,int);/*画按纽*/<br>void drawDialog(int,int,char[],char[]);/*画WIN2000窗口*/<br>void main(void)<br>{<br>   int driver,mode;<br>   driver=DETECT;<br>   initgraph(&amp;driver,&amp;mode,"");  /*初始化图形模式*/</P>
<P>   cleardevice();                /*以背景颜色为LIGHTDARK清屏*/<br>   setfillstyle(1,15);<br>   bar(0,0,getmaxx(),getmaxy());       /*设置背景颜色为LIGHTDARK*/</P>
<P>   drawDialog(100,100,"Open...","Open"); /*调用函数*/</P>
<P>   getch();  /*停顿*/</P>
<P>   closegraph();  /*关闭图形模式*/<br>}<br>void drawDialog(int x,int y,char array[],char array1[])<br>{<br>    int i,j;</P>
<P>/*画整个窗口的大小*/<br>    setfillstyle(1,7);<br>      bar(x,y,x+300,y+200);<br>    setcolor(15);<br>      line(x+1,y+1,x+300,y+1);<br>      line(x+1,y+1,x+1,y+200);<br>    setcolor(0);<br>      line(x+300,y,x+300,y+200);<br>      line(x,y+200,x+300,y+200);<br>    setcolor(8);<br>      line(x+1,y+199,x+299,y+199);<br>      line(x+299,y+1,x+299,y+199);<br>    setfillstyle(1,1);<br>      bar(x+3,y+2,x+298,y+15);</P>
<P>/*画窗口的右上角的 关闭按纽 和 帮助按纽*/<br>    setfillstyle(1,7);<br>      bar(x+285,y+4,x+295,y+14);<br>      bar(x+272,y+4,x+282,y+14);<br>    setcolor(15);<br>      line(x+285,y+4,x+295,y+4);<br>      line(x+285,y+4,x+285,y+14);<br>      line(x+272,y+4,x+282,y+4);<br>      line(x+272,y+4,x+272,y+14);<br>    setcolor(8);<br>      line(x+295,y+4,x+295,y+14);<br>      line(x+285,y+14,x+295,y+14);<br>      line(x+282,y+4,x+282,y+14);<br>      line(x+272,y+14,x+282,y+14);<br>    setcolor(8);<br>     settextstyle(2,0,4);<br>     moveto(x+274,y+4);<br>     outtext("?");<br>     moveto(x+275,y+4);<br>     outtext("?");<br>    setcolor(15);<br>    for(i=x+288,j=y+6;i&lt;=x+293;i++,j++)<br>        line(i,j,i+1,j);<br>    for(i=x+288,j=y+11;i&lt;=x+293;i++,j--)<br>        line(i,j,i+1,j);<br>    setcolor(8);<br>    for(i=x+287,j=y+6;i&lt;=x+292;i++,j++)<br>        line(i,j,i+1,j);<br>    for(i=x+287,j=y+11;i&lt;=x+292;i++,j--)<br>        line(i,j,i+1,j);</P>
<P>    settextstyle(2,0,4);<br>    setcolor(15);<br>    moveto(x+5,y+4);<br>    outtext(array);</P>
<P>/*画显示文件夹的小窗口*/<br>    drawSmallBox(x+35,y+20,x+189,y+37);<br>/*画文件夹*/<br>    drawFolder(x+37,y+25);<br>    setcolor(0);<br>    settextstyle(2,0,4);<br>    moveto(x+60,y+23);<br>    outtext("music");</P>
<P>/*画显示目录下的文件 或 文件夹 的大窗口*/<br>    drawBigBox(x+35,y+45,x+280,y+145);</P>
<P>/*画写文件名的小窗口*/<br>    drawSmallBox(x+80,y+160,x+225,y+177);<br>    setfillstyle(1,1);<br>      bar(x+82,y+163,x+111,y+174);<br>    setcolor(15);<br>    settextstyle(2,0,4);<br>    moveto(x+83,y+163);<br>    outtext("*.mzc");<br>    setcolor(0);<br>     settextstyle(2,0,4);<br>     moveto(x+35,y+162);<br>     outtext("File(N):");<br>     line(x+62,y+172,x+66,y+172);</P>
<P>/*画按纽*/<br>    drawButton(x+240,y+160,x+282,y+178);<br>    setcolor(0);<br>    settextstyle(2,0,4);<br>    moveto(x+249,y+163);<br>    outtext(array1);<br>    line(x+249,y+172,x+253,y+172);<br>}<br>void drawBigBox(int left,int top,int right,int bottom)<br>{<br>    setfillstyle(1,15);<br>      bar(left,top,right,bottom);<br>    setcolor(0);<br>      line(left,top,right,top);<br>      line(left,top,left,bottom);<br>    setcolor(8);<br>      line(left+1,top+1,right-1,top+1);<br>      line(left+1,top+1,left+1,bottom-1);<br>    setcolor(7);<br>      line(left+1,bottom-1,right-1,bottom-1);<br>      line(right-1,top+1,right-1,bottom-1);<br>    DrawAreaForScorollBax(left+2,bottom-16,right-2,bottom-2);<br>    drawRowScrollBarUnAct(left+2,bottom-16,-1);<br>    drawRowScrollBarUnAct(right-16,bottom-16,1);<br>}<br>void drawSmallBox(int left,int top,int right,int bottom)<br>{<br>    setfillstyle(1,15);<br>      bar(left,top,right,bottom);<br>    setcolor(0);<br>      line(left,top,right,top);<br>      line(left,top,left,bottom);<br>    setcolor(8);<br>      line(left+1,top+1,right-1,top+1);<br>      line(left+1,top+1,left+1,bottom-1);<br>    setcolor(7);<br>      line(left+1,bottom-1,right-1,bottom-1);<br>      line(right-1,top+1,right-1,bottom-1);<br>    drawColScrollBarUnAct(right-16,top+2,right-1,bottom-2);<br>}<br>void drawColScrollBarUnAct(int left,int top,int right,int bottom)<br>{<br>    drawButton(left,top,right,bottom);<br>    setcolor(7);<br>    line(left,top,right-1,top);<br>    line(left,top+1,left,bottom-1);<br>    setcolor(8);<br>    line(left+(right-left)/2,bottom-5,left+(right-left)/2-3,bottom-8);<br>    line(left+(right-left)/2,bottom-5,left+(right-left)/2+3,bottom-8);<br>    line(left+(right-left)/2-3,bottom-8,left+(right-left)/2+3,bottom-8);<br>    setfillstyle(1,8);<br>    floodfill(left+(right-left)/2,bottom-6,8);<br>    setcolor(15);<br>    line(left+(right-left)/2+1,bottom-4,left+(right-left)/2+4,bottom-7);<br>}<br>void drawFolder(int left,int top)<br>{<br>    int i,j;<br>    setfillstyle(1,14);<br>      bar(left,top,left+12,top+9);<br>    setcolor(0);<br>      rectangle(left,top,left+12,top+9);<br>      line(left+1,top-1,left+5,top-1);<br>    setcolor(14);<br>      line(left+1,top,left+5,top);<br>    for(i=left,j=top+9;j&gt;=top+3;j--,i++)<br>      putpixel(i,j,0);<br>    setcolor(0);<br>      line(left+6,top+3,left+18,top+3);<br>      line(left+18,top+3,left+12,top+9);<br>    setcolor(14);<br>    for(i=left+2,j=top+8;j&gt;top+3;j--,i++)<br>      line(i,j,i+10,j);<br>    putpixel(left+18,top+3,15);<br>}<br>void drawButton(int left,int top,int right,int bottom)<br>{<br>    setfillstyle(1,7);<br>     bar(left,top,right,bottom);<br>    setcolor(15);<br>     line(left+1,top+1,left+1,bottom-1);<br>     line(left+2,top+1,right-1,top+1);<br>    setcolor(8);<br>     line(left+1,bottom-1,right-1,bottom-1);<br>     line(right-1,top+1,right-1,bottom-1);<br>     line(left,top,right-1,top);<br>     line(left,top+1,left,bottom-1);<br>    setcolor(0);<br>     line(left,bottom,right,bottom);<br>     line(right,top,right,bottom);<br>}<br>void DrawAreaForScorollBax(int left,int top,int right,int bottom)        /*类似setfillstyle(9,7)*/<br>{<br>    int i;</P>
<P>    setcolor(15);<br>    for(i=top;i&lt;=bottom;i++)<br>        line(left,i,right,i);</P>
<P>    setcolor(7);<br>    for(i=top;i&lt;=bottom;i++)<br>    {<br>        if(left%2==0)<br>            if(i%2==0)<br>                setlinestyle(4,0xaaaa,1);<br>            else<br>                setlinestyle(4,0x5555,1);<br>        else<br>            if(i%2==0)<br>                setlinestyle(4,0x5555,1);<br>            else<br>                setlinestyle(4,0xaaaa,1);<br>        line(left,i,right,i);<br>    }<br>    setlinestyle(0,0,1);<br>}<br>void drawRowScrollBarUnAct(int PointerX,int PointerY,int BarStyle)<br>{<br>    int i;<br>    setcolor(7);<br>    for(i=PointerY;i&lt;=PointerY+14;i++)<br>        line(PointerX,i,PointerX+14,i);<br>    setcolor(15);<br>        line(PointerX+1,PointerY+1,PointerX+13,PointerY+1);<br>        line(PointerX+1,PointerY+1,PointerX+1,PointerY+14);<br>    setcolor(8);<br>        line(PointerX+1,PointerY+14,PointerX+14,PointerY+14);<br>        line(PointerX+13,PointerY+2,PointerX+13,PointerY+14);<br>    setcolor(8);<br>        line(PointerX+14,PointerY+1,PointerX+14,PointerY+14);<br>    if(BarStyle==-1)<br>    {<br>        line(PointerX+5,PointerY+7,PointerX+8,PointerY+4);<br>        line(PointerX+5,PointerY+7,PointerX+8,PointerY+10);<br>        line(PointerX+8,PointerY+4,PointerX+8,PointerY+10);<br>        setfillstyle(1,8);<br>            floodfill(PointerX+7,PointerY+7,8);<br>        setcolor(15);<br>        line(PointerX+9,PointerY+5,PointerX+9,PointerY+11);<br>    }<br>    else if(BarStyle==1)<br>    {<br>        line(PointerX+9,PointerY+7,PointerX+6,PointerY+4);<br>        line(PointerX+9,PointerY+7,PointerX+6,PointerY+10);<br>        line(PointerX+6,PointerY+4,PointerX+6,PointerY+10);<br>        setfillstyle(1,8);<br>            floodfill(PointerX+7,PointerY+7,8);<br>        setcolor(15);<br>        line(PointerX+10,PointerY+8,PointerX+7,PointerY+11);<br>    }<br>}</P>
[align=right][color=#000066][此贴子已经被作者于2007-11-18 8:05:51编辑过][/color][/align]


页: [1]

编程论坛