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.& ...
随机推荐
- Wireshark 基本使用方法
学习于: http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html
- Android RecycleView添加HeaderView宽度不能撑满屏幕问题
下午做项目的时候,碰到页面布局需要使用RecycleView加HeaderView,本以为很简单东西,却有一个小小的坑:HeaderView布局的宽度不能撑满屏幕! 先看下出现问题的图: 天了噜,我写 ...
- spring-cloud-zuul跨域问题解决
问题发现 正常情况下,跨域是这样的: 1. 微服务配置跨域+zuul不配置=有跨域问题 2. 微服务配置+zuul配置=有跨域问题 3. 微服务不配置+zuul不配置=有跨域问题 4. 微服务不配置+ ...
- 构造器 构造方法 constructor
构造器的作用: 1.创建对象. 设计类时,若不显示的声明类的构造器的话,程序会默认提供一个空参的构造器. 一旦显示的定义了构造器,就不再默认提供. 声明类的构造器:权限修饰符 与类同名(形参){} 类 ...
- jquery 回车提交事件
$("body").keydown(function(){ if(event.keyCode == "13"){ //13是回车键的位置 } })
- WPF自定义控件 依赖属性绑定
控件cs文件 using System.ComponentModel; using System.Windows; using System.Windows.Controls; using Syste ...
- HDU 4217
点击打开题目链接 题型就是数据结构.给一个数组,然后又k次操作,每次操作给定一个数ki, 从数组中删除第ki小的数,要求的是k次操作之后被删除的所有的数字的和. 简单的思路就是,用1标记该数没有被删除 ...
- 最短路-Dijkstra算法整理
维基说的很全面:https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm 理解: 先设置访问数组vis[]和距离数组dist[],开始时把源点(sour ...
- iOS 后台定位
http://www.cocoachina.com/ios/20150724/12735.html 前言 之前的文章说过 我现在做的是LBS定位的社交APP 其中主要的一个功能就是能够实时定位社交圈中 ...
- HZOJ 那一天我们许下约定
比较好想的一道题,只是那个组合数比较恶心. 先说一下我最开始想的$n^4$的沙雕dp: 设f[i][j][k]为前i天给了j个,第i天给了k个,则f[i][j][k]=∑f[i-1][j-k][o]; ...