MSHFlexGrid 控件中怎麼實現以下效果(像Excel和MSSQL-QUERY查詢結果中選中一行時的效果一樣)
1. 點擊固定列(0列)時能把全行給選定
2. 當最左列不是第1列時(列數較多橫向滑動條有滾動)要保持最左列不發生變化
3. 屏幕視覺上沒有閃的感覺
                             謝謝!!!

解决方案 »

  1.   

    1通过:OnClickMsflexgridList() 事件
    再通过 long lRow = m_MSFlex.GetRowSel();
    long lCol = m_MSFlex.GetColSel();
    得到lRow行,某lCol列
    如果是0行的某一列
    那么再用
    m_MSFlex.SetCol();
    m_MSFlex.SetRow();
    m_MSFlex.SetCellForeColor(RGB(255, 0, 0));
    使其高亮显示
    2.可以通过SetColWidth()来设定
    3用SetRedraw(FALSE)
    SetRedraw(TRUE)就是减清闪了
      

  2.   

    to carbon107(<软件开发思想.h>):
    我寫錯了 我是要選擇行啊
      

  3.   

    那就从单击或双击事件内得到你点的行,然后让这个行的所有列全高亮不就行了吗         long lRow = m_MSFlex.GetRowSel();//得到了行
           for (int i = 0; i < m_MSFlex.GetCols(), i++)
    {
    m_MSFlex.SetCol(列);
    m_MSFlex.SetRow(lRow);
    m_MSFlex.SetCellForeColor(RGB(255, 0, 0));
    }
      

  4.   

    to  carbon107(&lt;软件开发思想.h&gt;) 有點閃啊!屏幕像震動一樣!你看 MS-SQL QUERY 查詢器裡,查詢結果的表格,點單元格和點最左邊固定列時的效果,我的這裡現在的結果是感覺閃的明顯!我的表格有120以上列位(有的寬度為0)
      

  5.   

    SetRedraw(FALSE)
    在这里变化你的表格
    SetRedraw(TRUE)试试吧
      

  6.   

    to  carbon107(&lt;软件开发思想.h&gt;) 你的方法的效果和m_mshgrid.SetSelectionMode(1);//flexSelectionByRow類似!不過m_mshgrid.SetSelectionMode(1);//flexSelectionByRow
    總是把最左列移到最前面的第1列,只能通過 SetLeftCol() 來設回原來的列位置
    這樣一用 SetLeftCol() 便會有閃的效果有什麼辦法使用橫向滑動條來移動原來的列位置呢???(拖動滑塊時表格內容會變化也不會閃)我現在通過SetScrollInfo() SetScrollPos() 設置回SetLeftCol()之前滑塊的位置但是表格內容不會變用什麼方法讓滑塊的位置變後,表格的內容也會變呢???
                        謝謝!!!