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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 面向初学者的 Java 教程(包含 500 个代码示例).zip
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- AppPay-安卓开发资源
- yolo5实战-yolo资源