请教大家
CGridCtrl控件中如何设置某一列为灰显(即不可用)状态?
特定事件触发后,再还原为可用状态?

解决方案 »

  1.   

    1。设置该列的每一个CELL的颜色为灰色;
    2。设置该列的每一个CELL的状态为只读;
    3。在需要的时候,再恢复“颜色”和“可编辑”;
      

  2.   

    还有问题设置只读状态,没问题
    恢复可编辑状态,不管用
    m_GridCtrl.SetEditable(TRUE);//m_GridCtrl为控件实例
      

  3.   

    设置为只读的时候,
    应该是 m_GridCtrl.SetItemStatu( nRow,nCol, XXXX_READONLY );
    //XXXX_READONLY 是"只读状态"的属性值那么,如果要恢复为"非只读"
    应该是 m_GridCtrl.SetItemStatu( nRow,nCol, 0 );我不知道你使用的CGridCtrl类的具体情况,但是我自己的程序是这样处理的.
      

  4.   

    m_pGridCtrl->SetItemState(5, 1, GVIS_READONLY | GVIS_FIXED);
      

  5.   

    问题解决了
    多谢楼上两位
    //灰显
    m_GridCtrl.SetItemState( i, j, GVIS_READONLY );
    m_GridCtrl.SetItemBkColour( i, j, RGB(192,192,192) );
    //恢复
    m_GridCtrl.SetItemState( i, j, 0 );
    m_GridCtrl.SetItemBkColour( i, j, RGB(255,255,255) );ps:GVIS_FIXED是我版本的问题吗?没有这个状态
    ps:还有两个类似的问题,两位可以进去接分
    http://community.csdn.net/Expert/topic/3090/3090697.xml?temp=.1209375
    http://community.csdn.net/Expert/topic/3090/3090528.xml?temp=.6253321