GetColPos
GetRowPos
GetColWidth
GetRowHeight

解决方案 »

  1.   

    用下面这个函数://功能:取网格控件中当前单元格的位置(相对于对话框的客户区)
    //参数:
    //  rectCell - 保存单元格的位置
    void xxxxDlg::GetCellRect(CRect &rectCell)
    {
    //取网格的位置
    rectCell.left=m_cGrid.GetCellLeft();
    rectCell.top=m_cGrid.GetCellTop();
    rectCell.right=rectCell.left+m_cGrid.GetCellWidth();
    rectCell.bottom=rectCell.top+m_cGrid.GetCellHeight(); //进行坐标变换
    CClientDC dc((CWnd*)&m_cGrid);
    dc.SetMapMode(MM_TWIPS);
    dc.LPtoDP(&rectCell);
    rectCell.top=-rectCell.top;
    rectCell.bottom=-rectCell.bottom; CRect rectGrid;
    m_cGrid.GetWindowRect(&rectGrid);
    ScreenToClient(&rectGrid);
    rectCell.OffsetRect(rectGrid.left,rectGrid.top);
    }ComboBox的定位程序:
    void xxDlg::func()
    {
        //取该单元格的位置
        CRect rectCell;
        GetCellRect(rectCell);    //将控制命令选择控件移到该单元格的位置上
        m_comboCtrlMode.MoveWindow(&rectCell);
        m_comboCtrlMode.ShowWindow(SW_SHOW);
    }