`
缥缈孤鸿
  • 浏览: 41964 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

mfc 常用控件使用方法及常见数据类型转换

    博客分类:
  • C++
阅读更多
最近做了几个mfc小程序,想把我们经常用到而又经常忘记的的小知识记下来

一 数据类型的转换

1 int 到CString

   CString str;

   int tid=12,sno=21;
    str.Format("SELECT * FROM tiankong where ID=%d and sno=%d",tid,sno);

2 CString  到int

    CString str="asfassdfs";

    const char * pBuffs=LPCTSTR(str);
    int s=atoi(pBuffs);

或者读文件时

     CString flag;

     char TempStr1[10];

     memset(TempStr1,'\0',10);
     file.ReadString(flag);//读取第一行数据,第一行数据为坐标点数据
     sscanf(flag,"%s",TempStr1);
     int iflag = atoi(TempStr1);

3 int 到char[]

   char str[255];

   int i=1234;

   sprintf(str,"字符串:%d",i);

二 列表

1 列表设置扩展样式

    m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );//有网格,能选中一行

2 添加列属性及设置列大小

    m_list.InsertColumn(0, _T("名称"), LVCFMT_LEFT);
    m_list.InsertColumn(1, _T("类型"), LVCFMT_LEFT);
    m_list.InsertColumn(2,_T("父目录"), LVCFMT_LEFT);
    m_list.InsertColumn(3,_T("创建用户"), LVCFMT_LEFT);
m_list.InsertColumn(4,_T("备注"), LVCFMT_LEFT);
//SP-A3.设置各个栏的宽度
    m_list.SetColumnWidth(0,100);
    m_list.SetColumnWidth(1,50);
    m_list.SetColumnWidth(2,100);
    m_list.SetColumnWidth(3,100);
m_list.SetColumnWidth(4,100);

3 添加数据

   int nRow=m_list.InsertItem(0,"");
   if(cd->d[i].d_flag==1)
          type="目录";
   else type="文件";
      m_list.SetItemText(nRow,0,cd->d[i].d_name);
   m_list.SetItemText(nRow,1,type);
   if(cd->d[i].d_parent)
   m_list.SetItemText(nRow,2,cd->d[i].d_parent->d_name);
   m_list.SetItemText(nRow,3,cd->d[i].user);

4 获得选中的一行

int nItem = -1;
LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
if(lpNMItemActivate != NULL)
{
  nItem = lpNMItemActivate->iItem;
}
else return;
if(nItem<0) return;
m_list.SetItemState(nItem,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
m_list.SetHotItem(nItem);

三 树形控件

1 添加数据

m_tree.DeleteAllItems();
HTREEITEM hItem,hSubItem;
hItem =m_tree.InsertItem("根目录",TVI_ROOT);//在根结点上添加Parent1
hSubItem =m_tree.InsertItem(cd->d[0].d_name,hItem);//在Parent1上添加一个子结点
hSubItem =m_tree.InsertItem(cd->d[1].d_name,hItem ,hSubItem);//在Parent1上添加一个子结点,排在Child1_1后面
hSubItem =m_tree.InsertItem(cd->f[0].f_name,hSubItem);//在Parent1上添加一个子结点,排在Child1_1后面

四 文件

1 写一行

CString str="";
  CStdioFile file;
  file.Open(filename,CFile::modeCreate|CFile::modeWrite);
 
  str.Format("%d\r\n",d.flag);
  file.WriteString(str);

  file.Close();

2 读一行

CStdioFile file;
  file.Open(filename,CFile::modeRead);
  CString flag="";
  int iflag;
     //if(!file.ReadString(flag));
     char TempStr1[10];

     memset(TempStr1,'\0',10);
     file.ReadString(flag);//读取第一行数据,第一行数据为坐标点数据
     sscanf(flag,"%s",TempStr1);
     iflag = atoi(TempStr1);
     //MessageBox(flag);
五 其他

1 建立对话框

login.Create(IDD_LOGIN,this->GetDesktopWindow());

this->ShowWindow(false);
     //dlg.SetParent(this->GetDesktopWindow());
    // login.ShowWindow(SW_SHOW);
  login.DoModal();

2 获得对话框

CFileApp *ca= (CFileApp *)AfxGetApp();
//AfxGetApp()-> m_pMainWnd->GetDlgItem
    CFileDlg * cd=(CFileDlg * )ca->m_pMainWnd;
分享到:
评论

相关推荐

    VC常用数据类型转换.doc

    以下是一些关于VC常用数据类型转换的详细说明: 1. **BSTR、LPSTR 和 LPWSTR** - **BSTR**(Basic String)是OLECHAR*类型的Unicode字符串,用于自动化兼容性。它由系统API(如`SysAllocString`)管理,并包含一个...

    MFC及com常用转换强制类型转化

    在这些框架和模型中,数据类型转换尤为重要,特别是在处理字符串、数值、时间等基本数据类型时。下面将详细介绍MFC和COM中常用的几种类型转换方法: ### 1. CString与float之间的转换 #### 1.1 CString转为float `...

    C++和MFC常用类型转换类

    在C++编程中,类型转换是常见的操作,特别是在处理不同数据类型之间交互的时候。MFC(Microsoft Foundation Classes)库是微软为Windows平台提供的一套C++类库,它扩展了C++标准库,包含了丰富的控件和框架功能,...

    MFC.rar_MFC_MFC类型转换

    此外,MFC中的`CArray`、`CList`、`CMap`等容器类提供了丰富的数据类型转换功能。例如,`CArray`可以通过模板参数支持多种元素类型,而`CMap`可以将键和值分别指定为不同的类型。 在处理控件和消息映射时,MFC的`ON...

    MFC学习资料 控件用法 类型转换

    4. 数据类型转换:在处理消息参数时,如LPARAM和LPARAM,可能需要转换为其他类型,如int、long或指针。这通常通过强制类型转换完成,如(int)(LPARAM)param。 5. 消息映射:在消息映射中,可能会遇到消息参数的转换...

    mfc控件的使用详解

    ### MFC控件的使用详解 #### 一、引言 MFC(Microsoft Foundation Class Library),即微软基础类库,是Microsoft为简化Windows程序开发而提供的一个类库。MFC支持多种类型的控件,包括标准控件、ActiveX控件以及...

    MFC_Classes.rar_MFC类型转换

    在MFC中,数据类型转换通常涉及到指针类型的转换、基本数据类型的转换以及类之间的转换。例如,当需要将一个CWnd指针转换为CButton指针时,可以使用强制类型转换,但需要注意的是,这种转换必须确保原始指针确实指向...

    VC上位机MFC利用串口控件发送接收数据

    在本文中,我们将学习如何使用 VC 上位机 MFC 中的串口控件来发送和接收数据。我们将创建一个基于对话框的 MFC 应用程序,并在其中插入 MSComm 控件,以便实现串口通信。 首先,让我们创建一个基于对话框的 MFC ...

    利用MFC的Picture控件显示图像和视频/摄像头画面(VS2008+OpenCV2.0)

    在MFC中,通过Picture控件加载OpenCV读取的图像,需要将OpenCV的IplImage或cv::Mat类型转换为CImage,然后设置到Picture控件。例如,可以使用`CImage::FromHandle`函数将OpenCV的图像句柄转换为CImage对象,再用`...

    VC常用数据类型的使用

    1. **其他数据类型转换为字符串:** - 短整型(int)可以使用`itoa()`函数,如`itoa(i,temp,10);` - 长整型(long)使用`ltoa()`,如`ltoa(l,temp,10);` - 浮点数使用`fcvt()`,如`buffer = _fcvt(source, 7, &...

    MFC进制转换.7z

    `MainFrm.cpp`可能包含了主框架窗口的实现,`CCconvtor.cpp`可能是转换类的实现,`进制转换.cpp`、`进制转换Doc.cpp`和`进制转换View.cpp`则可能分别对应于文档类、文档对象和视图对象,这些是MFC中常见的组件。...

    MFC做的进制转换

    在MFC应用中,我们可以创建一个对话框(CDialog派生类),用于显示用户界面,包括输入框、下拉菜单选择进制类型、转换按钮以及结果显示区域。 1. **用户界面设计**: - 输入框(CEdit控件):用户输入需要转换的...

    VC++基础知识及MFC常用小技巧小常识

    数据类型的转换也是编程中常见的操作,比如从int到double,或者从void*到特定类型指针的转换。这些转换需要理解不同类型之间的兼容性和可能引发的问题,如精度损失或溢出。 【MFC小技巧与小常识】 MFC(Microsoft ...

    MFC进制转换

    总的来说,掌握MFC环境下的进制转换不仅需要理解C++的基本语法和数据类型,还需要熟悉MFC的类库和消息机制。这对于开发Windows桌面应用来说是必不可少的技能,尤其对于需要处理用户输入和显示输出的场景。通过对给定...

    MFC中使用EXCEL方法及源码

    以上操作过程中,使用`COleVariant`类作为参数传递,它能方便地转换各种数据类型,适应Excel的自动化接口。在MFC中,还需要确保正确的头文件包含,如`afxdisp.h`和自动生成的`excel.h`,以及在VC6.0和VS2005等不同...

    MFC 进制转换器设计

    - **数据转换逻辑**:编写C++函数或方法来实现不同进制间的转换,这些函数通常接收一个整数或字符串作为输入,然后返回目标进制的表示。 4. **MFC 的优势** - **代码复用**:MFC通过封装Windows API,提供了许多...

    MFC中使用TeeChart控件例程(vs2017环境下)

    在对话框的 OnInitDialog() 方法中,找到刚才添加的控件ID,然后使用 CWnd::FromHandle 进行转换,并调用其 SetChartType 方法来设置默认的图表类型,例如: ```cpp STeeCtrl* pTeeCtrl = (STeeCtrl*) GetDlgItem...

    mfc使用期限设置

    MFC 使用期限设置 MFC 使用期限设置是指在使用 MFC 框架时,设置和处理日期和...MFC 使用期限设置是非常重要的知识点,需要注意版本问题、CTime 和 CTimeSpan 的使用、 датeTimePicker 控件的使用等方面的内容。

    MFC类型转换与回调函数

    在编程领域,尤其是在使用Microsoft Foundation Class (MFC)库进行Windows应用程序开发时,类型转换和回调函数是非常重要的概念。本文将深入探讨这两个主题,并结合提供的文档名称,详细讲解它们的应用和重要性。 ...

Global site tag (gtag.js) - Google Analytics