|
我想画一个类似于"田"字的22*15网格,希望网格中的小格子有一定的颜色并且可以移动到别的位置覆盖掉这个位置上的格子,我的方法如下:
high=30;width=88;
win=newwin(high+1,width,LINES/2-18,COLS/2-44);
frame_win=derwin(win,2,4,0,0);
//frame_win来标志某一个格子,处在左上角
wbkgd(frame_win,COLOR_PAIR(3));
wbkgd(win,COLOR_PAIR(2));
box(frame_win,ACS_VLINE,ACS_HLINE);
box(win,ACS_VLINE,ACS_HLINE);
for(i=0;i<high/2;i++)
{
mvwaddch(_win,2*(i+1),0,ACS_LTEE);
mvwaddch(win,2*(i+1),width-1,ACS_RTEE);
};
for(i=1;i<high;i++)
for(j=0;j<width-2;j++)
mvwaddch(win,2*i,j+1,ACS_HLINE);
for(j=1;j<width/2+1;j++)
for(i=0;i<high;i++)
mvwaddch(win,i,4*j,ACS_VLINE);
for(i=0;i<width/4;i++)
{
mvwaddch(win,0,4*(i+1),ACS_TTEE);
mvwaddch(win,high,4*(i+1),ACS_BTEE);
};
此方法可以画好22*15个格子,但左上角的小格子边界始终无法对齐格子边沿,请问如何实现啊.
我用另外一种方法生成22*15个SUBWIN,然后每个subwin用 box(box_win,ACS_VLINE,ACS_HLINE);格子加线的尺寸比实际窗口的要小,造成格子之间的分界线无法重合.请大家指点指点,谢了先! |
|