- 浏览: 41964 次
- 性别:
- 来自: 大连
最新评论
最近做了几个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;
一 数据类型的转换
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;
发表评论
-
c++操作符优先级总结
2013-12-03 14:47 792优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有 ... -
Qt状态机实例
2013-12-03 14:01 1099#include <QApplication> ... -
c++数据类型的隐形转换
2013-09-02 09:51 1676(1)隐式转换发生的时机:当传递给操作符或者函数的参数与指定类 ... -
C中的野指针
2013-08-30 16:11 1048讨论一 什么是野指针 ... -
STL学习(转)
2012-08-28 15:38 1440STL就是Standard Template Libr ... -
STL详解
2012-08-28 14:33 1748STL概述 STL的一个重要 ... -
c++的三种继承(转)
2012-08-23 18:47 1084http://blog.csdn.net/wang_lime ... -
MFC OpenGL标签云 (转)
2012-08-22 11:21 1263初识标签云是在去年年末,一看到这个应用我就特别感兴趣。还记 ... -
MFC中ADO方式操作数据库实例(转)
2012-08-22 11:12 2440连接ACCESS为例: //头文件 #pragma on ... -
派生类的构造函数(转)
2012-08-20 18:05 989派生类的数据成员由所 ... -
元算符重载时友元函数和成员函数的选择
2012-08-18 20:14 1411一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好 ... -
C++面试题(转)
2012-08-16 17:25 8171.是不是一个父类写了一个virtual 函数,如果子类覆盖它 ... -
8皇后问题c++的递归实现
2012-08-16 16:18 1494最近用C++递归形式实现了8皇后问题,可能效率有点低 #i ... -
c++实现的一些排序算法
2012-08-15 11:37 1389最近用c++简单实现了一些排序算法,记下来,以便以后用到 ...
相关推荐
以下是一些关于VC常用数据类型转换的详细说明: 1. **BSTR、LPSTR 和 LPWSTR** - **BSTR**(Basic String)是OLECHAR*类型的Unicode字符串,用于自动化兼容性。它由系统API(如`SysAllocString`)管理,并包含一个...
在这些框架和模型中,数据类型转换尤为重要,特别是在处理字符串、数值、时间等基本数据类型时。下面将详细介绍MFC和COM中常用的几种类型转换方法: ### 1. CString与float之间的转换 #### 1.1 CString转为float `...
在C++编程中,类型转换是常见的操作,特别是在处理不同数据类型之间交互的时候。MFC(Microsoft Foundation Classes)库是微软为Windows平台提供的一套C++类库,它扩展了C++标准库,包含了丰富的控件和框架功能,...
此外,MFC中的`CArray`、`CList`、`CMap`等容器类提供了丰富的数据类型转换功能。例如,`CArray`可以通过模板参数支持多种元素类型,而`CMap`可以将键和值分别指定为不同的类型。 在处理控件和消息映射时,MFC的`ON...
4. 数据类型转换:在处理消息参数时,如LPARAM和LPARAM,可能需要转换为其他类型,如int、long或指针。这通常通过强制类型转换完成,如(int)(LPARAM)param。 5. 消息映射:在消息映射中,可能会遇到消息参数的转换...
### MFC控件的使用详解 #### 一、引言 MFC(Microsoft Foundation Class Library),即微软基础类库,是Microsoft为简化Windows程序开发而提供的一个类库。MFC支持多种类型的控件,包括标准控件、ActiveX控件以及...
在MFC中,数据类型转换通常涉及到指针类型的转换、基本数据类型的转换以及类之间的转换。例如,当需要将一个CWnd指针转换为CButton指针时,可以使用强制类型转换,但需要注意的是,这种转换必须确保原始指针确实指向...
在本文中,我们将学习如何使用 VC 上位机 MFC 中的串口控件来发送和接收数据。我们将创建一个基于对话框的 MFC 应用程序,并在其中插入 MSComm 控件,以便实现串口通信。 首先,让我们创建一个基于对话框的 MFC ...
在MFC中,通过Picture控件加载OpenCV读取的图像,需要将OpenCV的IplImage或cv::Mat类型转换为CImage,然后设置到Picture控件。例如,可以使用`CImage::FromHandle`函数将OpenCV的图像句柄转换为CImage对象,再用`...
1. **其他数据类型转换为字符串:** - 短整型(int)可以使用`itoa()`函数,如`itoa(i,temp,10);` - 长整型(long)使用`ltoa()`,如`ltoa(l,temp,10);` - 浮点数使用`fcvt()`,如`buffer = _fcvt(source, 7, &...
`MainFrm.cpp`可能包含了主框架窗口的实现,`CCconvtor.cpp`可能是转换类的实现,`进制转换.cpp`、`进制转换Doc.cpp`和`进制转换View.cpp`则可能分别对应于文档类、文档对象和视图对象,这些是MFC中常见的组件。...
在MFC应用中,我们可以创建一个对话框(CDialog派生类),用于显示用户界面,包括输入框、下拉菜单选择进制类型、转换按钮以及结果显示区域。 1. **用户界面设计**: - 输入框(CEdit控件):用户输入需要转换的...
数据类型的转换也是编程中常见的操作,比如从int到double,或者从void*到特定类型指针的转换。这些转换需要理解不同类型之间的兼容性和可能引发的问题,如精度损失或溢出。 【MFC小技巧与小常识】 MFC(Microsoft ...
总的来说,掌握MFC环境下的进制转换不仅需要理解C++的基本语法和数据类型,还需要熟悉MFC的类库和消息机制。这对于开发Windows桌面应用来说是必不可少的技能,尤其对于需要处理用户输入和显示输出的场景。通过对给定...
以上操作过程中,使用`COleVariant`类作为参数传递,它能方便地转换各种数据类型,适应Excel的自动化接口。在MFC中,还需要确保正确的头文件包含,如`afxdisp.h`和自动生成的`excel.h`,以及在VC6.0和VS2005等不同...
- **数据转换逻辑**:编写C++函数或方法来实现不同进制间的转换,这些函数通常接收一个整数或字符串作为输入,然后返回目标进制的表示。 4. **MFC 的优势** - **代码复用**:MFC通过封装Windows API,提供了许多...
在对话框的 OnInitDialog() 方法中,找到刚才添加的控件ID,然后使用 CWnd::FromHandle 进行转换,并调用其 SetChartType 方法来设置默认的图表类型,例如: ```cpp STeeCtrl* pTeeCtrl = (STeeCtrl*) GetDlgItem...
MFC 使用期限设置 MFC 使用期限设置是指在使用 MFC 框架时,设置和处理日期和...MFC 使用期限设置是非常重要的知识点,需要注意版本问题、CTime 和 CTimeSpan 的使用、 датeTimePicker 控件的使用等方面的内容。
在编程领域,尤其是在使用Microsoft Foundation Class (MFC)库进行Windows应用程序开发时,类型转换和回调函数是非常重要的概念。本文将深入探讨这两个主题,并结合提供的文档名称,详细讲解它们的应用和重要性。 ...