请教下~~在ONDRAW函数下~偶想用数组画3~4个矩形~有点颜色的那种~~~怎么画?
单个的分开偶会~~~现在老师要用数组~~C很长时间没碰了~~大致有个印象~但是怎么定义什么的都忘记了~现在人在机房,老师要偶回去前搞好~希望大家帮帮忙~~~~谢谢

解决方案 »

  1.   

    你的数组是什么数组啊,
    pDC->Rectangle(坐标~);
      

  2.   

    楼上那样偶会的~~~
    象int Rectangle[4][4]=
     {
     {0,   0,   50,  50},
                  {60,   60,   110,   110},
     {120,   120,   170,  170},
     {210,   210,   260,  260}
     };  
    这样的数组~然后要画矩形~~怎么画~?
      

  3.   

    for(int i =0; i < sizeof(Rectangle)/sizeof(int)/4; i++)
    pDC->Rectangle(Rectangle[i][0], Rectangle[i][1], Rectangle[i][2], Rectangle[i][3])
      

  4.   

    如上~~呵呵,要用颜色的话
    CBrush br;
    br.CreateSolidBrush(RGB(255,0,0);
    pDC->SelectObject(&br);
      

  5.   

    那现在要用个SETCURSOR函数获取鼠标的坐标X,Y~~~然后判断是否在所画的矩形内,如果在~则返回这个矩形的名称~偶用的不对~~请帮忙看看
    int Rectangle[4][4]=
     {
     {0,   0,   50,  50},
             {60,   60,   110,   110},
     {120,   120,   170,  170},
     {210,   210,   260,  260}
     };      //用数组定义矩形
     
     CBrush br;
         br.CreateSolidBrush(RGB(255,255,0);
         pDC->SelectObject(&br);
     for(int i =0; i < sizeof(Rectangle)/sizeof(int)/4; i++)
         pDC->Rectangle(Rectangle[i][0], Rectangle[i][1], Rectangle[i][2], Rectangle[i][3])//用定义的矩形画图
     
     
     
     //CPoint   pt;   
            //GetCursorPos(&pt);   
            //TRACE("%d\n",pt.x);   
            //TRACE("%d",pt.y);       //用GetCursorPos函数获取鼠标当前坐标
     
     
     int compare
     {  
     for(int i=0;i<4;i++)
     Rectangle[i][0]<=pt.x &&Rectangle[i][2]>=pt.x &&Rectangle[i][1]<=pt.y &&Rectangle[i][3]<=pt.y;//用获取的X,Y值比较,得到矩形号牌
     return i;
     }
      

  6.   

    在WM_MOUSEMOVE里写吧~~~GetCursorPos得到的是屏幕上的坐标,还要ScreenToClient(&point1);
    pt.x=pt.x+point1.x;pt.y=pt.y+point1.y;这样才可以的`