VC++ CMsflexgrid 使用
引用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 使用的更多相关文章
- Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)
经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常 ...
- VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答
用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...
- VC程序获取管理员权限
一: 编译程序的时候设置一下 在项目属性--连接器--清单文件--UAC执行级别改为requireAdministrator 二: void GainAdminPrivileges(CString s ...
- 目标电脑未安装VC++6.0或者VS,运行APP丢失DLL问题解决办法
一.背景 VS或者VC++6.0编译出来的程序需要在未安装VS/VC++6.0的电脑上跑,很大情况会出现MSVCRXXX.dll 或者其他DLL丢失的情形,本篇就DLL相关问题做个记录. 二.正文 1 ...
- 6 VC维
1 VC维的定义 VC维其实就是第一个break point的之前的样本容量.标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个 ...
- VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN
百度了了一大堆,都说让重装vc++6.0,然而并没有什么卵用. 解决办法:找到你的vc6.0安装路径下的WINDOWS.H,将0x0400改为0x0500 Window各个版本对应的宏值WINVER:
- 【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读
本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语 ...
- vc下打印透明背景图片
一.前言 刚接到个任务,要把带有透明背景的章子图片打印出来,开始觉得不是很简单吗,直接用vc自动生成的打印功能不就ok了.不过问题却不是想像的那么简单! 二.窗口中显示透明图片 在窗口中显示图片,可以 ...
- VC++6.0文件关联问题的解决方法
最近我的电脑*.c文件关联失败,无法实现双击*.c打开vc++6.0,感觉特别不爽. 在经过自己的琢磨研究后,终于找到了解决方法. 特此分享下,希望可以帮到遇到同样问题的你. 核心内容: 1.& ...
随机推荐
- LintCode_167 链表求和
题目 你有两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式返回和. 样例 给出两个链表 3-&g ...
- Polyfill简介
1.什么是Polyfill? Polyfill是一个js库,主要抚平不同浏览器之间对js实现的差异.比如,html5的storage(session,local), 不同浏览器,不同版本,有些支持,有 ...
- 【python小随笔】单例模式设计(易懂版)
1:单例模式原理 大道理:希望在系统中某个对象只能存在一个,单例模式是最好的解决方案,单例模式是一种常见的软件设置模式,在它的核心结构中只包含一个被称为单例类的特殊类,通过单例模式可以保证系统中的一个 ...
- Leetcode783.Minimum Distance Between BST Nodes二叉搜索树结点最小距离
给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(Tr ...
- 前端规范2-CSS规范
CSS规范 缩进 使用Tab缩进(相当于四个空格) 选择器与{之间必须包含空格,参1 属性名和之后的:不允许包含空格,:与属性值之间必须包含空格. 例 列表性属性值在单行时,后必须跟一个空格 ...
- 2019.9.10附加题while练习
题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万之 ...
- TIJ——Chapter Three:Operators
Operators 本章节比较简单,所以简单的做一些笔记: 几个要点: 1.When the compiler sees a String followed by a "+" fo ...
- AT3728 Squirrel Migration
AT3728 Squirrel Migration 就是给每个点分配两个匹配点(自环除外) 考虑最大值 考虑极限情况:每个边的贡献是min(sz[u],sz[v])*2 证明存在方案: 发现,如果哪边 ...
- 从零学React Native之07View
View 组件是React Native最基本的组件.绝大部分其他React Native 组件. View组件的颜色和边框 backgroundColor 键用来指定颜色. RN 0.19版本开始, ...
- 巨蟒python全栈开发-第11阶段 ansible_project5
今日大纲 1.命令展示前端页面实现(下面有个断点) 2.命令下发后端展示