有 人用c写了窗口界面代码,我现在用wxWidgets-2.8.6 做dvcpp的图形库,可以实现么
<P>如题,我现 用的是devcpp4.9.9.2和wxWidgets-2.8.6,有朋友会实现下面这个代码实现的画模拟窗口功能么???<br><br>#include<graphics.h><br>#include<conio.h><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(&driver,&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<=x+293;i++,j++)<br> line(i,j,i+1,j);<br> for(i=x+288,j=y+11;i<=x+293;i++,j--)<br> line(i,j,i+1,j);<br> setcolor(8);<br> for(i=x+287,j=y+6;i<=x+292;i++,j++)<br> line(i,j,i+1,j);<br> for(i=x+287,j=y+11;i<=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>=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>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<=bottom;i++)<br> line(left,i,right,i);</P>
<P> setcolor(7);<br> for(i=top;i<=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<=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]
