引用actvie x :microsoft CMsflexgrid;


BOOL CCalibrationCoordsDisDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_FlexGrid.put_Rows(); //设置列数
m_FlexGrid.put_Cols(); //设置行数
m_FlexGrid.put_FixedRows(); //设置固定行数为1行
m_FlexGrid.put_FixedCols(); //设置固定列数为0列
m_FlexGrid.put_ColWidth(, ); //设置列号为1的列宽为1500
m_FlexGrid.put_RowHeight(, ); //设置行号为2的行高为300
m_FlexGrid.put_ColAlignment(, ); //设置列号为1的文本对齐方式
m_FlexGrid.put_TextArray(, "Head1"); //设置表头(第1列)内容为“Head1”
m_FlexGrid.put_TextArray(, "Head2");
m_FlexGrid.put_TextMatrix(, , "Text"); //设置单元格(行号1列号1)内容为“Text”
m_FlexGrid.AddItem("AddString", (COleVariant)(3L)); //在行号为3的位置增加一行
for (int i = ; i<; i++)
m_FlexGrid.put_TextMatrix(, i, "合并行"); //将行号为0、列号从0到4的单元格内容设为相同“合计”
m_FlexGrid.put_MergeCells(); //设置单元格合并方式(下述)
m_FlexGrid.put_MergeRow(, TRUE); //设置要合并的行 for (int i = ; i<; i++)
m_FlexGrid.put_TextMatrix(i,, "合并列"); //将列号为2、列号从4到7的单元格内容设为相同“合计”
m_FlexGrid.put_MergeCells(); //设置单元格合并方式(下述)
m_FlexGrid.put_MergeCol(, TRUE); m_FlexGrid.put_GridColor(0xffffff);
for (int row = ; row < ; row++)
{
m_FlexGrid.put_FixedRows(row); //设置固定行数为1行
for (int i = ; i < ; i++)
{
m_FlexGrid.put_FixedCols(i); //设置固定列数为0列
if (row % )
{
m_FlexGrid.put_CellBackColor(0XDFBFA2);
m_FlexGrid.put_CellForeColor(0xff); }
else
{
m_FlexGrid.put_CellBackColor(0XDFBF52);
m_FlexGrid.put_CellForeColor(0x0000ff);
}
}
}
m_FlexGrid.put_FixedRows(); //设置固定行数为1行
m_FlexGrid.put_FixedCols(); //设置固定列数为0列 m_FlexGrid.put_BackColorFixed(0XDFBFA2); //设置固定行列颜色
m_FlexGrid.put_ForeColorFixed(0x00ffff);
}
 
void CCalibrationCoordsDisDlg::ClickMsflexgrid1()
{
long lCol = m_FlexGrid.get_ColSel(); //获取点击的行号
long lRow = m_FlexGrid.get_RowSel(); //获取点击的列号
if (lRow>m_FlexGrid.get_Rows() || lRow == ) //判断点击是否有效
return; CRect rect;
m_FlexGrid.GetWindowRect(&rect); //获取FlexGrid控件的窗口矩形
ScreenToClient(&rect); //转换为客户区矩形
CDC* pDC = GetDC();
int nTwipsPerDotX = / pDC->GetDeviceCaps(LOGPIXELSX);
int nTwipsPerDotY = / pDC->GetDeviceCaps(LOGPIXELSY);
/*long y = m_FlexGrid.get_RowPos(lRow) / nTwipsPerDotY;
long x = m_FlexGrid.get_ColPos(lCol) / nTwipsPerDotX;*/ long x = , y = ;
for (int col = ; col < lCol; col++)
{
x += m_FlexGrid.get_ColWidth(col)/ nTwipsPerDotX;
}
y = m_FlexGrid.get_RowPos(lRow) / nTwipsPerDotY;
//计算选中格的尺寸(象素为单位)。加1是实际调试中,发现加1后效果更好
long width = m_FlexGrid.get_ColWidth(lCol) / nTwipsPerDotX + ;
long height = m_FlexGrid.get_CellHeight() / nTwipsPerDotY + ;
//形成选中个所在的矩形区域
CRect rc(x, y, x + width, y + height);
//转换成相对对话框的坐标
rc.OffsetRect(rect.left + , rect.top + );
CString strValue = m_FlexGrid.get_TextMatrix(lRow, lCol); //获取单元格内容
m_Edit.ShowWindow(SW_SHOW); //显示控件
m_Edit.MoveWindow(rc); //改变大小并移到选中格位置
m_Edit.SetWindowText(strValue); //显示文本
m_Edit.SetSel(, strValue.GetLength());
m_Edit.SetFocus();
} void CCalibrationCoordsDisDlg::OnEnKillfocusEdit1()
{
CString strInput;
GetDlgItemText(IDC_EDIT1, strInput); //获取输入框内容
m_FlexGrid.put_Text(strInput); //设置单元格内容
m_Edit.ShowWindow(SW_HIDE);
}

 

VC++ CMsflexgrid 使用的更多相关文章

  1. Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常 ...

  2. VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答

    用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...

  3. VC程序获取管理员权限

    一: 编译程序的时候设置一下 在项目属性--连接器--清单文件--UAC执行级别改为requireAdministrator 二: void GainAdminPrivileges(CString s ...

  4. 目标电脑未安装VC++6.0或者VS,运行APP丢失DLL问题解决办法

    一.背景 VS或者VC++6.0编译出来的程序需要在未安装VS/VC++6.0的电脑上跑,很大情况会出现MSVCRXXX.dll 或者其他DLL丢失的情形,本篇就DLL相关问题做个记录. 二.正文 1 ...

  5. 6 VC维

    1 VC维的定义 VC维其实就是第一个break point的之前的样本容量.标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个 ...

  6. VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN

    百度了了一大堆,都说让重装vc++6.0,然而并没有什么卵用. 解决办法:找到你的vc6.0安装路径下的WINDOWS.H,将0x0400改为0x0500 Window各个版本对应的宏值WINVER:

  7. 【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读

    本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语 ...

  8. vc下打印透明背景图片

    一.前言 刚接到个任务,要把带有透明背景的章子图片打印出来,开始觉得不是很简单吗,直接用vc自动生成的打印功能不就ok了.不过问题却不是想像的那么简单! 二.窗口中显示透明图片 在窗口中显示图片,可以 ...

  9. VC++6.0文件关联问题的解决方法

    最近我的电脑*.c文件关联失败,无法实现双击*.c打开vc++6.0,感觉特别不爽. 在经过自己的琢磨研究后,终于找到了解决方法. 特此分享下,希望可以帮到遇到同样问题的你. 核心内容: 1.& ...

随机推荐

  1. 【软件安装】我喜欢的notepad插件

    1.文件管理器 explorer 2.16进制查看文件工具 HEX-Editor

  2. 使用php封装APP接口

    php封装APP接口 我们先来介绍Json的封装方法 json_encode函数传递中文的话,输出后是乱码的,针对这个问题我觉得有必要做一个解释: 其实json_encode对中文那不是乱码,只是js ...

  3. 【转】MySQL的btree索引和hash索引的区别

    Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T ...

  4. Directx11教程(52) 实例(instancing)的简单应用

    原文:Directx11教程(52) 实例(instancing)的简单应用 有些时候,我们需要在场景中渲染大量的重复的物体,比如体育场中的观众,森林里面的树木等等,这些物体具有相似的形状,比如很多树 ...

  5. zend studio打开文件提示unsupported character encoding

    zend studio打开文件提示unsupported character encoding,是文件的编码方式错误. 有可能是PHP代码中,charset={CHARSET} ,用了变量的形式调用编 ...

  6. VS2008中为控件添加属性(比如前景色,背景色)

    VS2008中没有classwizard,但不要伤心,到了VS2010,classwizard又回来了. 可以参照这篇博客:http://blog.csdn.net/candyliuxj/articl ...

  7. GIAC2019 演讲精选 | 面向未来的黑科技——UI2CODE闲鱼基于图片生成跨端代码

    一直以来, 如何从‘视觉稿’精确的还原出 对应的UI侧代码 一直是端侧开发同学工作里消耗比较大的部分,一方面这部分的工作 比较确定缺少技术深度,另一方面视觉设计师也需要投入大量的走查时间,有大量无谓的 ...

  8. Mybatis通过工具类根据用户名查找用户列表

    抽取SqlSessionFactoryUtils工具类,共享SqlSessionFactory创建过程 /** * SqlSessionFactory工具类 * @author:Mr.Tan * @C ...

  9. [React Native]StatusBar的使用

    StatusBar是React Native 0.20 新增的跨平台组件,它可以用来设置并动态改变设备的状态栏显示特性. 虽然说是跨平台的组件, 但是有些属性不是跨平台的 ,我们需要注意下.因为IOS ...

  10. 网络编程--多线程 , socketserver

    内容补充 python2与python3的区别? """ python3对unicode字符的原生支持 Python2中使用ASCII码作为默认编码方式导致string有 ...