文章推荐:【C++小语法技巧】命名空间和输入输出
文章链接:https://cloud.tencent.com/developer/article/2465907
文章简介:本文详细介绍了C++相关的命名控件使用和输入输出的使用,对最近了解C++和使用C++有一定的帮助!
常学常新,简单记录!
暂时发现的区别:
6.0中的MSFlexGrid可以直接通过工具箱controls拖拉出来(如果没有也需要添加,Project——>Add to Project——>Components and Controls——>查找范围Gallery——>Registered ActiveX Controls——>选择需要添加的控件)。如果以上添加还是会出现“不支持此接口”,请在界面上鼠标右击,然后Insert ActiveX Control,在这里找寻对应的控件。
2008中需要在“工具”——>“选择工具箱”——>“COM组件”中找到Microsoft FlexGrid Control,Version 6.0,添加对应的控件库,然后会在工具箱中的常规找到6.0中对应的MSFlexGrid。
在运行使用中,如果项目新建后没有任何控件使用与插入,那么运行就会报错,提示Internal error。两者都会提示该错误,请新手注意!!!
点击事件:双击控件,会主动添加点击事件的函数。如果需要删除,需要在“ClassWizard”中找到Messages中的Click对应的Member functions。
重载对话框函数:这里是对表格添加成员变量,为了后续在程序中的使用。ClassWizard——>Member Variables——>Add Variable..(如果之前没有msflexgrid的相关文件会自己添加,只需确认就好)
可以查看DoDataExchange中是否添加了对应的变量。同时.h文件中已经定义对应的变量,例如CMSFlexGrid m_xx;
CString str_row="1|2|3";
XX.SetFormatString(str_row);
xx.GetCols();
xx.SetColWidth(第几列,设置宽度)
xx.SetColAlignment(第几列,设置方式);
xx.SetScrollTrack(TRUE);
在VC 6.0中需要使用MSFlexGrid控件进行数据输入,通过查阅资料,需要考虑以下几个方面的问题:
MSFlexGrid的长度单位为twips,计算每英寸水平逻辑像素数——1440/pDC->GetDeviceCaps(LOGPIXELSX),同理计算每英寸垂直逻辑像素数——1440/pDC->GetDeviceCaps(LOGPIXELSY)。
通过MSFlexGrid的GetRowPos与GetColPos获取对应的确定指定行和列的左上角相对于表格左上角的距离(以像素为单位),这里也需要与前者进行计算获取对应的左上角的坐标。
再通过MSFlexGrid的GetColWidth与GetRowHeight,计算对应单元格的长宽。
CDC* pDC=GetDC();
int x_bili=1440/pDC->GetDeviceCaps(LOGPIXELSX);
int y_bili=1440/pDC->GetDeviceCaps(LOGPIXELSY);
long x = m_FlexGrid.GetColPos(lCol)/x_bili;
long y = m_FlexGrid.GetRowPos(lRow)/y_bili;
long width = m_FlexGrid.GetColWidth(lCol)/x_bili;
long height = m_FlexGrid.GetRowHeight(lRow)/y_bili;
这里需要根据上文得到的x、y、宽度和高度,设置Edit_box的大小以及位置。这里需要注意,应使用CWnd来设置控件。CWnd提供了创建和管理 Windows 窗口的基本功能,CWnd 可以访问和操作窗口的各种属性和行为。
CWnd *pWnd;
pWnd = GetDlgItem(控件名称); //控件指针
pWnd->ShowWindow(SW _SHOW ); //设置控件显示
pWnd->MoveWindow(rc); //改变大小并移到选中格位置
pWnd->SetWindowText(strValue); //显示文本
pWnd->SetFocus(); //获取焦点
SetFocus 它用于将键盘输入焦点设置到指定的窗口。当一个窗口获得焦点时,它通常会显示一个光标,并且能够接收键盘输入。
CString Input;
GetDlgItemText(控件名称,Input); //获取输入框内容
MSFlexGrid的名称.SetText(Input); //设置单元格内容
CWnd *pWnd;
pWnd = GetDlgItem( 控件名称 ); //控件指针
pWnd->ShowWindow(SW _HIDE); //隐藏输入框
主要内容是介绍在使用过程中VC6.0与VS2008的区别和MSFlexGrid的使用及单元格数据输入!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有