博文
介绍一下CWnd::OnCreate()的作用(2009-08-26 00:45:00)
摘要:
当Create or CreateEx 函数被调用时,OnCreate()它会被调用,所以,你可以重载OnCreate()来实现在某个窗口创建时附加首先要做的事情。
Usage: CWnd::Create virtual BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
&nb......
小笔记:strncpy函数(2009-08-26 00:04:00)
摘要:
strncpy
语法:
#include <string.h> char *strncpy( char *to, const char *from, size_t count );
功能:将字符串from 中至多count个字符复制到字符串to中。如果字符串from 的长度小于count,其余部分用'\0'填补。返回处理完成的字符串。
在学生管理系统上用到了:
void CStudent::AddStudentName(char* pszName){ assert(pszName);
strncpy(m_pszName,pszName,MAX_NAME); m_pszName[MAX_NAME] = '\0';}......
在VisualC++中如何使用fopen()函数来读写文件(2009-08-25 10:31:00)
摘要:很多使用过Turbo C的朋友喜欢用fopen()函数来读写文件,在Visual C++环境中您也可以使用fopen()来读写文件。而且您还可以使用Visual C++中的标准的打开文件对话框,这样可以使选取读写文件的路径更方便。具体的做法是这样的。 首先您需要使用到MFC基本类库,在您原有的Visual C++程序中加上一个由CFileDialog类派生的新类,例如是CMyFileDialog,然后用这个新类定义一个对象,例如是:myDlg,使用这个对象的DoModal()方法,就可以呼出打开文件的对话框。这样,您只要把被选中的路径名及文件名传送给fopen()函数就可以打开读写这个文件了。 CMyFileDialog myDlg(true); 定义一个对话框对象 myDlg.DoModal(); 呼出打开文件对话框 CString fileName; 定义一个Cstring类型的字符串来存储文件的路径及文件名 fileName=myDlg.GetPathName(); 得到文件的路径及文件名 由于fopen()函数中需要的文件名参数是字符型的,所以我们还需要把CString类型的文件名转换为字符类型的变量。 int i, length; 定义i作为循环变量,定义length作为文件路径及文件名的长度 Char* FileName; 定义char型的字符指针来存储文件名,给fopen()函数使用 length=fileName.GetLength(); 把文件名的长度赋给length变量 FileName=new char[length]; 给char型的指针变量FileName分配内存空间 for(i=0;i把CString型变量fileName中的字符一个一个地赋给char型的指针变量FileName *(FileName+i)=fileName.GetAt(i); *(FileName+length)=NULL; 在FileName变量的最后加上一个结束标志 这样,您就要吧使用fopen(FileName,"w")来写文件,或者是用fopen(FileName,"r")来读文件了。FileName就是使用打开文件对话框得到的文件路径及文件名。
出自:http://www.qnr.......
【转】vc ON_CONTROL_RANGE 多个控件响应一个方法(2009-08-23 22:21:00)
摘要:分三个步骤
1.在头文件中声明函数例如
afx_msg void onNum(UINT uID)
2.在.cpp文件中添加函数体
void CCalculatorDlg::OnNum(UINT uID){UINT index=uID-IDC_NUM_0;CString num;num.Format(_T("%d"),index);AfxMessageBox(num);}
3.添加消息映射
ON_CONTROL_RANGE(BN_CLICKED,IDC_NUM_0,IDC_NUM_9,OnNum)
第一个参数 事件
第二个参数 控件的第一个id
第三个参数 空间的最后一个id
第四个参数 响应事件的方法
注意 id号必须是连续的 如果是自己手动修改的
请先点击 build -Clear 然后在重新编译......
如何在MFC中使用LISTBOX控件(2009-08-19 00:48:00)
摘要:如何在MFC中使用LISTBOX控件。实例如下:
一。首先新建一个Single或者对话框类型的MFC.EXE工种。
二。插入一个Dialog,然后新建一个类CDlgList,我们可以利用这个控件显示项目,也可实现多选,得到选项总数等.其源程序如下:
// DlgList.cpp : implementation file//
#include "stdafx.h"#include "testvc.h"
#include "DlgList.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif
/////////////////////////////////////////////////////////////////////////////// CDlgList dialog
CDlgList::CDlgList(CWnd* pParent /*=NULL*/): CDialog(CDlgList::IDD, pParent){//{{AFX_DATA_INIT(CDlgList)//}}AFX_DATA_INIT}
void CDlgList::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CDlgList)DDX_Control(pDX, IDC_BUTTON1, m_Del);DDX_Control(pDX, IDC_EDIT1, m_Edit);DDX_Control(pDX, IDC_LIST1, m_Lst);//}}AFX_DATA_MAP}
BEGIN_MESSAGE_MAP(CDlgList, CDialog)//{{AFX_MSG_MAP(CDlgList)ON_BN_CLICKED(IDC_BUTTON1, OnAddString)ON_BN_CLICKED(IDC_BUTTON2, OnDel)ON_BN_CLICKED(IDC_BUTTON5, OnClear)ON_BN_CLICKED(IDC_BUTTON3, OnGetCount)ON_BN_CLICKED(IDC_BU......
mfc之ListBox介绍(2009-08-19 00:47:00)
摘要:ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。LBS_MULTIPLESEL 指明列表框可以同时选择多行LBS_EXTENDEDSEL 可以通过按下Shift/Ctrl键选择多行LBS_SORT 所有的行按照字母顺序进行排序在列表框生成后需要向其中加入或是删除行,可以利用:int AddString( LPCTSTR lpszItem )添加行,int DeleteString( UINT nIndex )删除指定行,int InsertString( int nIndex, LPCTSTR lpszItem )将行插入到指定位置。void ResetContent( )可以删除列表框中所有行。通过调用int GetCount( )得到当前列表框中行的数量。如果需要得到/设置当前被选中的行,可以调用int GetCurSel( )/int SetCurSel(int iIndex)。如果你指明了选择多行的风格,你就需要先调用int GetSelCount( )得到被选中的行的数量,然后int GetSelItems( int nMaxItems, LPINT rgIndex )得到所有选中的行,参数rgIndex为存放被选中行的数组。通过调用int GetLBText( int nIndex, LPTSTR lpszText )得到列表框内指定行的字符串。此外通过调用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。int SelectString( int nStartAfter, LPCTSTR lpszItem )可以选中包含指定字符串的行。在MFC 4.2版本中添加了CCheckListBox类,该类是由CListB......
MFC ListBox(2009-08-19 00:46:00)
摘要:ListBox的操作比较简单1添加数据声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content.m_ListBox_Content.AddString(_T("123"));m_ListBox_Content.AddString(_T("汉字"));m_ListBox_Content.AddString(_T("English"));m_ListBox_Content.AddString(_T("!@#$%^&*()"));2获取数据CString s;m_ListBox_Content.GetText(1,s);MessageBox(s,_T("取得第2行数据"),MB_OK);s.ReleaseBuffer();
将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写的顺序写入.
3获取选择的数据首先要将ListBox的Selection属性设置为Multiple;int nSel;nSel=m_ListBox_Content.GetCurSel();CString s;m_ListBox_Content.GetText(nSel,s);MessageBox(s,_T("您选择的是"),MB_OK);s.ReleaseBuffer();
4获取选择ListBox项的多个数据
首先要将ListBox的Selection的属性设置为Multiple
int nSel = m_ListBox_Content.GetSelCount();CArray< int,int& > arrayListSel;arrayListSel.SetSize(nSel); m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData()); CString s = _T("");for( int i=0; i< nSel; i++ ){m_ListBox_Content.GetText( arrayListSel[i], s);MessageBox(s,_T("您选择的是"),MB_OK);......
MessageBox的用法(2009-08-19 00:41:00)
摘要: 我们写MFC程序的时候经常会用到MessageBox这个函数,用来显示一些提示信息,而且通常我们用的都是很简单的形式。今天我看了Word里退出是显示的提示保存的对话框之后忽然想到用MFC的MessageBox是不是也可以实现呢?于是,我仔细的查了一下,于是就总结了一些常用的用法。 先来看Messagebox函数的原型: int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );参数解释:lpszText ------ 对话框显示的内容pszCaption ------ 对话框的标题,默认的空nType ------ 对话框的类型,默认的类型为只显示一个确定按钮前两个参数都不需要说明解释,主要的就是最后一个类型参数。MFC中为MessageBox定义了一些类型:MB_ABORTRETRYIGNORE ------ 对话框显示中止,重试和忽略三个按钮MB_OK ------ 前面说过,是默认类型,对话框只显示一个确定按钮MB_OKCANCEL ------ 显示确定和取消两个按钮MB_RETRYCANCEL ------ 显示重试和取消两个按钮MB_YESNO ------- 显示是和否两个按钮MB_YESNOCANCEL ------ 显示是,否和取消两个按钮以上是全部的基本的标识,还有一些辅助的标识:MB_DEFBUTTON1 ------ 用来确定选中的按钮,表示选中第一个按钮,此项为默认的选中按钮MB_DEFBUTTON2 ------ 表示选中第二个按钮MB_DEFBUTTON3 ------ 表示选中第三个按钮在MessageBox显示的对话框上除了可以显示文字,MFC里还定义了一些图标:MB_ICONEXCLAMATION和MB_IC......
MFC各类的层次结构(2009-07-24 16:48:00)
摘要: 《深入浅出MFC》(侯俊杰著)几次强调:MFC程序设计的第一要务是熟记各类的层次结构,并清楚了解其中几个一定会用到的类。
下面是类结构的详细图解和MFC的发展:
http://www.cppblog.com/andxie99/archive/2008/06/04/9747.html
里面那个博客有详细资料。没毒的,朋友放心。......
