MFC编程总结
### MFC编程总结知识点 #### 一、编辑框与字符数组操作 在MFC中,编辑框(Edit Control)是一种非常常见的控件,用于输入文本数据。为了将编辑框中输入的字符逐个保存到数组中,我们可以使用`GetDlgItemText`函数来获取编辑框中的文本,并将其存储在一个字符数组或`CString`对象中。 **示例代码**: ```cpp // 假设编辑框的ID为IDC_EDIT1,字符数组为char buf[1000] GetDlgItemText(IDC_EDIT1, buf, sizeof(buf)); ``` 此外,对于更高级的操作,比如利用`CString`的`Find`函数来查找和分割字符串,可以通过以下步骤实现: 1. 使用`Find`函数找到分隔符的位置。 2. 使用`Left`、`Mid`、`Right`等函数提取字符串的不同部分。 **示例代码**: ```cpp Cstring xData = "string1|string2|string3"; int newIndex = xData.Find('|', 0); // 从0位置开始查找| std::wstring firstPart = xData.Left(newIndex); int oldIndex = newIndex; newIndex = xData.Find('|', oldIndex + 1); std::wstring secondPart = xData.Mid(oldIndex + 1, newIndex - (oldIndex + 1)); std::wstring thirdPart = xData.Right(xData.GetLength() - newIndex - 1); ``` #### 二、按钮状态切换 在MFC中,可以通过更改按钮的文本内容来实现按钮状态的切换。例如,实现一个按钮在点击时可以在“开始”和“暂停”之间切换: **示例代码**: ```cpp void CTest10Dlg::OnButton1() { static bool flag = true; if (flag) { SetDlgItemText(IDC_BUTTON1, "暂停"); flag = false; } else { SetDlgItemText(IDC_BUTTON1, "开始"); flag = true; } } ``` #### 三、ListCtrl 控件操作 ListCtrl 是MFC中常用的列表控件,可用于显示项目列表。 1. **插入列**:可以使用`InsertColumn`函数来插入列。 ```cpp m_list1.InsertColumn(0, "因素", LVCFMT_CENTER, 40); ``` 2. **选中并删除列**:可以通过监听鼠标点击事件来确定用户选择的行,并删除指定的列。 ```cpp DWORD dwPos = GetMessagePos(); CPoint point(LOWORD(dwPos), HIWORD(dwPos)); m_list1.ScreenToClient(&point); LVHITTESTINFO lvinfo; lvinfo.pt = point; lvinfo.flags = LVHT_ABOVE; int nItem = m_list1.SubItemHitTest(&lvinfo); if (nItem != -1) { CString strtemp; strtemp.Format("单击的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem); AfxMessageBox(strtemp); m_list1.DeleteColumn(lvinfo.iSubItem); } ``` #### 四、CString与整型变量之间的转换 在MFC开发中,经常需要在`CString`和`int`之间进行类型转换。下面是一些基本的方法: 1. **从`CString`到`int`**: ```cpp CString str = "2"; int a = atoi(str); ``` 2. **从`int`到`CString`**: ```cpp int temp = 1212; CString aa; aa.Format("%d", temp); AfxMessageBox("var is " + aa); ``` #### 五、设置ListCtrl的样式 为了使ListCtrl看起来像一个网格(Grid),可以通过设置扩展样式来实现: ```cpp m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP); ``` #### 六、单选按钮初始化 在MFC中,如果希望在对话框中使用一组单选按钮,并且希望默认选中其中一个按钮,可以通过以下步骤实现: 1. **设置属性**:确保所有单选按钮具有相同的`GroupName`属性。 2. **添加变量**:使用Class Wizard为第一个单选按钮添加一个`int`类型的变量,如`m_Radio`。 3. **设置初始状态**:在构造函数中设置`m_Radio`的值为0,以选中第一个单选按钮。 #### 七、位图显示 要在Static控件中显示缩放后的位图,可以使用以下步骤: 1. 加载位图资源。 2. 设置Static控件的样式为位图显示模式。 **示例代码**: ```cpp HBITMAP hbmp; hbmp.LoadBitmap(IDB_BITMAP1); m_static1.ModifyStyle(0, SS_BITMAP); m_static1.SetBitmap(hbmp); ``` 以上就是MFC编程总结中的几个重要知识点,包括编辑框的操作、按钮状态的切换、ListCtrl的使用、类型转换、ListCtrl样式设置以及位图的显示。这些知识点都是MFC开发中常用的技术点,掌握它们可以帮助开发者更好地完成界面设计和功能实现。
剩余8页未读,继续阅读
- Ferullz2012-03-23有一点乱,自我感觉不全。而且很杂,不是很好的资源,建议可以看看别的资源,这个文件的作用不是很大
- 粉丝: 4
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 用友云安全架构与技术实现的全面解析:打造可信可靠的云端服务
- IMS通信原理介绍及实践
- 物联网平台,支持mqtt、tcp、modbus协议,实现历史数据归档,数字大屏显示,单独定制组态画面等功能,一般应用完全足够 已重新整理,含部署视频和文字教程,所有的部署和测试需要的软件都在压缩包里
- 商品销售数据表考试用的
- 阿里巴巴企业邮箱:全面解析POP3、SMTP、IMAP协议配置与常见问题解决方案
- kubesphere master节点IP变更
- 光伏储能同步发电机simulink仿真模型 主电路:三相全桥逆变 直流侧电压800V 光伏模块:光伏板结合Boost电路应用MPPT 储能模块:采用双闭环控制,外环直流母线电容稳压,内环为电池电流环控
- 西门子变频器 SINAMICS STARTER V5.6 HF2 软件 STARTER V56 STARTERV56HF2-cd-1.zip.006
- 数据库建表语句创建应用运行记录表以支持应用管理系统的运行状态追踪
- Linux离线安装nginx-1.27.3全部依赖安装包,附带安装教程,和全套nginx配置https http tcp/ip配置
- 前端分析-2023071100789
- 光储直流微电网下垂控制母线电压分层控制(含光伏储能电网负载) 1分布式电源(光伏):150kW,MPPT运行模式 2储能:50kW,平衡系统功率,采用下垂控制 并网运行时,储能装置作为负载运
- 信息系统项目管理师优秀论文80篇(薛大龙博士)
- 信息论与编码中基于DTC变换的图像压缩算法的MATLAB实现
- 机械设计铝型材切断打孔线sw21可编辑非常好的设计图纸100%好用.zip
- 前端分析-2023071100789