引用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. Beetl 3中文文档 转载 http://ibeetl.com/guide/

    Beetl作者:李家智(闲大赋) <xiandafu@126.com> 1. 什么是Beetl 广告:闲大赋知识星球,付费会员 Beetl( 发音同Beetle ) 目前版本是3.0.7, ...

  2. oracle编写分页过程

    有了上面的基础,相信大家可以完成分页存储过程了,要求,请大家编写一个存储过程,要求可以输入表名.每页显示记录数.当前页.排序字段(deptno降序).返回总记录数,总页数和返回结果集. 把一个字符串, ...

  3. BZOJ4241历史研究题解

    题目连接 很显然可以想到分块,用f[i][j]表示块i到块j的ans,然后发现答案一定是f[i][j] 或者其他在边角出现的数字 我们在记下g[i][j]从开头到块i中的数字j出现的次数 这样就每一次 ...

  4. bzoj3732 Network(NOIP2013 货车运输)

    Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_ ...

  5. MUI - myStorage在ios safari无痕浏览模式下的解决方案

    myStorage在ios safari无痕浏览模式下的解决方案 今天看到了这个帖子LocalStorage 在 Private Browsing 下的一个限制, 吓尿了,如果用户开启了无痕浏览,ap ...

  6. SQL Server 记录(更新中...)

    sys.databases 显示所有数据库信息 sys.tables 显示当前数据库所有的表的信息 Go 向 SQL Server 实用工具发出一批 Transact-SQL 语句已结束的信号,Go本 ...

  7. Java8 日期、时间操作

    一.简介 在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题.故此,Java8引入了一套全新的日期时间处理 ...

  8. BZOJ5259/洛谷P4747: [Cerc2017]区间

    BZOJ5259/洛谷P4747: [Cerc2017]区间 2019.8.5 [HZOI]NOIP模拟测试13 C.优美序列 思维好题,然而当成NOIP模拟题↑真的好吗... 洛谷和BZOJ都有,就 ...

  9. java连接oracle jdbc连接

    Class.forName("oracle.jdbc.driver.OracleDriver"); Connection ct=Driver.Magager.getConnecti ...

  10. celery琐碎笔记

    -l 指定日志等级 -n 指定任务名称 -Q 指定任务执行队列 -c 指定启动celery的cpu数量 --logfile 指定日志输出到文件,会输出任务函数里的print,而控制台不会,用于调试. ...