博文

 转【vc】CFileDialog 使用介绍     (2007-09-14 13:18:00)

摘要:CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );参数意义如下: bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。 lpszDefExt 指定默认的文件扩展名。 lpszFileName 指定默认的文件名。 dwFlags 指明一些特定风格。 lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。 pParentWnd 为父窗口指针。 创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择: CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:\test\test1.txt CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1 POSITION CFileDialog::GetStartPosition( ......

阅读全文(6659) | 评论:0

心灵箴言(2007-09-13 21:13:00)

摘要:心灵箴言 `敌人或知已,越少越安全。
`沉默,退缩,拒绝---吸引男人的三种最佳途径。
`自由意味着可以选择---或者活得有意义,或者死得有尊严。
`人生哪有死结,想通了,不过就是---饥来餐饭倦来眠。

`书中自有颜如玉,是否也可以这样理解---一个女人若想花容永驻,与其化妆整容,不如多读好书。
`人生的舞台没有假装这一说---每个人迟早都会真的变成他日常扮演的那个角色。
`面具戴太久,就会长到脸上,再想揭下来,除非伤筋动骨扒皮。
`工作时不为钱分心,钱反而会来得更快。
`婚姻中最折磨人的,并非冲突,而是厌倦。
`知识不是力量,智慧才是。
`聪明人应当是快乐的---自以为聪明的人才常常感到烦恼。
`真君子是:以入世之态度做事,以出世之态度做人。
`女人总想改变她喜欢的男人,等他真的改变了,她又不喜欢他了。
`漂亮女人走到哪里都沾光---沾的是小光,吃亏可是吃大亏。
`单相思就像谋杀案---一不小心,就露马脚。
`安全须知:第一,提防好脾气的人发火。第二,别和没什么东西可失去的人竞争。
`社交之所以累,是因为每个人都试图表现出自己其实并不具备的品质。
`
`世界上唯一会随着时光的流逝而越变越美好的东西就是回忆。
`动物只相信它看到的东西,人却能看到他相信的东西---幸福和烦恼皆由此而来。
``真正的痛苦,没有人能与你分担---你只能把它从一个肩,换到你的另一个肩。
`令人精疲力尽的并不是要做的事本身---而是事前事后患得患失的心态。
`令人沮丧的往往并非事实,而是比较。
`知识和财富的不同点之一就是---前者无论在哪里得到,都没有什么可耻的。
`
`要是经常往上看,你会长高,如果老是低着头捡便宜,你就会驼背。
`许多人不断犯错误的原因就是---觉得事后表示歉意,比事前抵御诱惑,容易些。
``人生没有如果---但有许多但是。

`怀旧……不是因为那个时代多么好,而是那个时候,你年轻...   http://oxwxo.spaces.live.com/......

阅读全文(2289) | 评论:0

大家的帮助贴~~~~~~~~(2007-09-13 15:34:00)

摘要:int CSCommTestDlg::String2Hex(CString str, CByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen=0;
int len=str.GetLength();
senddata.SetSize(len/2);
for(int i=0;i<len;)
{
char lstr,hstr=str[i];
if(hstr==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i];
hexdata=ConvertHexChar(hstr);
//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1
lowhexdata=ConvertHexChar(lstr);
if((hexdata==16)||(lowhexdata==16))
break;
else
hexdata=hexdata*16+lowhexdata;
i++;
senddata[hexdatalen]=(char)hexdata;
hexdatalen++;
}
senddata.SetSize(hexdatalen);
return hexdatalen;
} //这是一个将字符转换为相应的十六进制值的函数
//好多C语言书上都可以找到
//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1
char CSCommTestDlg::ConvertHexChar(char ch)
{
if((ch>='0')&&(ch<='9'))     //0-9
return ch-0x30;
else if((ch>='A')&&(ch<='F'))// 大写A-F
return ch-'A'+10;
else if((ch>='a')&&am......

阅读全文(3403) | 评论:0

作者tag:c/c++ 消息 应用 属性 mb messagebox CSDN(2007-09-07 14:36:00)

摘要:http://blog.csdn.net/qiumingbo/archive/2007/05/25/1625324.aspx   MessageBox用法
消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.
MessageBox("这是一个最简单的消息框!");
2.
MessageBox("这是一个有标题的消息框!","标题");
3.
MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL );
4.
MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );
5.
MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL ); 6.
if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
 return; 附其它常用属性 系统默认图标,可在消息框上显示
X错误 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
?询问 MB_ICONQUESTION
!警告 MB_ICONEXCLAMATION and MB_ICONWARNING
i信息 MB_ICONASTERISK and MB_ICONINFORMATION 按钮的形式
MB_OK  默认
MB_OKCANCEL 确定取消
MB_YESNO 是否
MB_YESNOCANCEL 是否取消 返回值
IDCANCEL 取消被选
IDNO 否被选
IDOK 确定被选
IDYES 是被选 补充:
以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK);  或MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd为某窗口的句柄,或者直接用AfxMe......

阅读全文(2777) | 评论:0

*VC++设计基于ODBC的数据库管理系统(2007-09-03 11:42:00)

摘要:http://dev.21tx.com/2006/06/27/11955_1.html   1、CDatabase类

  概括地讲,CDatabase针对某个数据库,它负责连接数据源;CRecordset针对数据源中的记录集,它负责对记录的操作;CRecordView负责界面,而CFieldExchange负责CRecordset与数据源的数据交换。

  要建立与数据源的连接,首先应构造一个CDatabase对象,然后再调用CDatabase的Open()成员函数。Open()函数负责建立连接,其函数原型为:

virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly =
FALSE, LPCTSTR lpszConnect = "ODBC;", BOOL bUseCursorLib = TRUE );
  函数中参数lpszDSN指定了数据源名(构造数据源的方法将在后面介绍),在lpszConnect参数中也可包括数据源名,此时lpszDSN必需为NULL,若在函数中未提供数据源名且使lpszDSN为NULL,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源。参数bExclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是FALSE,这说明数据源是被共享的。参数bReadOnly若为TRUE则对数据源的连接是只读的。参数lpszConnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(ID)和口令等信息,字符串中的"ODBC"表示要连接到一个ODBC数据源上。参数bUseCursorLib若为TRUE,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库。 若连接成功,函数返回TRUE,若返回FALSE,则说明用户在数据源对话框中按了Cancel按钮。若函数内部出现错误,则框架会产生一个异常。下面是一个调用Open()函数的例子:

CDatabase m_db; //在文档类中嵌入一个CDatabase对象
//连接到一个名为"Student ReGIStration"的数据源<......

阅读全文(1632) | 评论:0

Visual C++ 中的ODBC编程(2007-09-03 10:17:00)

摘要: Visual C++ 中的ODBC编程 2003-12-09加入  来自CPCW  作者董毅  7条评论  点击7241次        
ODBC(Open Database Connectivity,开放式数据库连接),是一种用来在相关或不相关的数据库管理系统(DBMS)中存取数据的标准应用程序接口(API)。本文给出Windows 95 环境下用Visual C++ 进行ODBC 编程的具体方法及技巧。

---- 关键字:ODBC,Visual C++,Windows 编程。

---- 一.概述

---- ODBC 是一种使用SQL 的程序设计接口。使用ODBC 让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS 厂商们的广泛支持。

---- Microsoft Developer Studio 为大多数标准的数据库格式提供了32 位ODBC 驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle 以及Microsoft Text。如果用户希望使用其他数据格式,用户需要相应的ODBC 驱动器及DBMS。

---- 用户使用自己的DBMS 数据库管理功能生成新的数据库模式后,就可以使用ODBC 来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。登录数据库的具体操作参见有关ODBC 的联机帮助。

---- 二.MFC 提供的ODBC 数据库类

---- Visual C++ 的MFC ......

阅读全文(2078) | 评论:0

斗形紋(2007-08-30 09:58:00)

摘要:http://www.miq.com.tw/MIQ_teach_Web/01_Whorl.htm   斗形紋 箕形紋 弧形紋 帳弧紋 弧形紋帶有箕形紋 非主要紋形 ATD角 斗形紋   Whorl 紋     型 說                              明
斗形紋(Whorl) 如圖所示,具有獨立自主性、獨創性、非常個人主義、自私的要求或期望來決定其情緒彈性、智力視野狹窄、有隱密和懷疑的傾向。雖然他似乎很傳統保守,但當適合于他的目的時,他可不理會傳統。 斗形紋可說是最重要的紋形,主要是他具有個性、獨立、果斷和不受傳統習俗或反對而影響其創造力等特性。 斗形紋比較會顯示出心理的複雜性;而斗形紋的獨創特性是會全力投入其對品質要求的挑剔與傲慢。 斗形紋的人有時會被認為是一個固執的標記,常常發現在環指(無名指)、拇指和食指。但是要區別各種紋型的斗形紋將會有不同特性顯出:
靶心或同心環繞型
斗形紋(target or concentric circle whorl) 如圖所示,靶心型斗形紋是一位個人主義、內心集中的標記人物,他能看一個問題的所有面但卻很難作決定。
貝殼或螺旋型
(shell or spiral) 如圖所示,雖然與靶心或同心環繞型兩者紋形通常的含義是一樣,但貝殼或螺旋型則其強烈性將會少一些,如同先前所說的斗形紋是個人主義者的標記。
雙斗紋(Composite) 如圖所示,實際型、物質的思想,但這型是不完整全面的,有混亂狀態、臨界的、怨恨的、壓抑的、彈性不足等傾向。 此紋形的人會受搖擺、猶豫不決而苦惱,他的思想就像這紋形在兩個方向來回的跑,雖有好的判斷力但卻缺乏一般的見識、太唯物主義和對生命的情感問題缺乏考量,另對理想的願景或人生的規劃也缺乏理解或正確評價,所以發現這樣紋......

阅读全文(5106) | 评论:0

基于结构的指纹分类技术(2007-08-29 16:34:00)

摘要: http://www.et00.com/mcu/html/article_2440.html 摘要:指纹分类技术是指纹数据库的一个重要的索引机制。提出了一种基于指纹方向图的结构分类算法。通过图像分割,抽取图像的有用部分,而后基于指纹方向图,寻找指纹奇异点,利用脊线跟踪技术和规则确定指纹的类别。     关键词:指纹分类 方向图 脊线跟踪 图像分割 指纹识别是一种重要的生物特征鉴别技术。每一个人都有自己特有的指纹特征。随着计算机技术的不断发展,自动指纹识别系统(AFIS)已在公安、金融领域得到广泛的应用。图1显示了几种典型的指纹图像。 实践表明,指纹识别技术具有高准确性和可信度。但是,指纹识别常常需要在大规模的数据库上进行计算。如果没有一种有效的数据库分类机制,输入的指纹图像将不得不同数据库中大量的指纹数据逐一进行比对,系统工作将非常繁重。为了减少搜索时间和计算的复杂度,必须对指纹进行分类。这样查询只需在指纹数据库中的一个相应子集中进行,从而节省了运算时间并降低了运行复杂度。 指纹分类技术的核心问题是如何确定指纹分类类别。具体分类方法很多,类数也不确定。依照公安部的标准,指纹被为为以下七类:弓型、左箕、右箕、斗型、缺指、其它、未知。 1 分类算法概述 指纹分类技术主包括计算机图像处理和模式识别两方面的内容。指纹分类技术可以看作指纹在大尺度下的粗略匹配。输入指纹首先被划归为预先已定义好的某一类,而后在更精细的尺度上,在这一类中进行精确的指纹比对。目前指纹分类算法通常有两种分类,一种是根据采用的理论方法划分,划分通常划分为统计方法、结构方法、人工神经网络方法、变换域方法等。另一种是从实际问题考虑的角度出发,大致可分为两类:一类是模型方式,这类方法主要基于指纹特征点的数目和相对集团,更接近于人的思维习惯;另一类是全局方式,根据整个图像脊线特征或方向信息进行分类,这类方法常采用统计理论方法。 本文提出了一种基本结构的实现方法,依照指纹的方向图信息,寻找奇异点。根据奇异点的数目和相关位置,设计逻辑规则进行判决。主要处理过程如图2所示。 2 图像预分割 在指纹分类的过程中,输入的指纹图像往往是一幅含有大量噪声的灰度图像,特别是现场指纹,噪声化现象更严重。这些干扰和不利因素将影响最终的分类结果,使得系统的整体 性能和准确率降低。......

阅读全文(2399) | 评论:0

第二章 指纹识别相关概述(2007-08-29 16:32:00)

摘要:转 http://lib.usst.edu.cn/shuobo/show/256/   http://lib.usst.edu.cn/shuobo/show/256/index.htm 第二章 指纹识别相关概述 <!--[if !supportEmptyParas]--> <!--[endif]--> 自动指纹识别是本世纪六十年代兴起的、利用计算机取代人工来进行指纹识别的一种方法。相对于其它生物特征鉴定技术例如语音识别及视网膜识别,指纹识别具有许多独到的优点,更重要的是它具有很高的实用性和可行性,己经被认为是一种理想的身份确认技术,有着十分广泛的应用前景,是将未生物特征识别技术的主流。近年来,随着计算机技术的飞速发展、低价位指纹采集仪的出现以及高可靠算法的实现,更使得自动指纹识别技术越来地进入到人们的生活和工作中,自动指纹识别系统的研究和开发正在成为国内外学术界和商业界的热点,许多院校和公司都在从事这方面的研究和开发。在国外,指纹识别作为一种身份认证技术已经有较多种的实用化软、硬件产品,这其中包括指纹采集芯片,自动识别软件和相应的软件开发工具包等等。我国正在酝酿第二代身份证,它的一个重要特征就是将指纹技术加入其中,但我国在这方面的研究相对落后,大力开展以指纹识别技术为代表的生物特征识别技术势在必行。虽然在过去的几十年中已取得很大进展,但指纹识别仍是国内外图像处理、信号分析以及模式识别研究中的热点之一。我们相信,指纹图像的自动识别作为模式识别领域的一项综合性研究,其研究成果将进一步完善多尺度分析和模式识别领域中的不变量理论,丰富图像形态变换与分析理论,拓展计算机视觉技术,完善模糊图像处理及模糊模式识别的理论与方法,有着非常重要的意义。 <!--[if !supportEmptyParas]--> <!--[endif]--> §2.1  指纹性质简介 <!--[if !supportEmptyParas]--> <!--[endif]-->     指纹是指手指末端正面皮肤上凸凹不平的纹路,由于有这些凸凹纹路的存在,增加了皮肤表面的摩擦力,使得我们能够用手方便的抓起重物。纹路中隆起部分是手指真皮向表......

阅读全文(4354) | 评论:0

指纹识别技术(2007-08-29 11:35:00)

摘要:指纹识别技术 2007年01月29日 星期一 15:38 1、产品构成  对指纹识别技术,目前除了一部分真正的研发人员之外,大部分涉业者或者兴趣者都希望有个清晰的了解。在此,先从指纹识别产品的构成说起,也就是由产品构成再展开对技术构成的分析。  指纹识别产品是由基础构件、中间构件和上层构件组成的,基础构件是指一个完整的指纹识别(不是指纹采集)产品,包括硬件和软件,都必须具备的基础部分。中间构件,简称中间件,是向上支持各类软件系统或者硬件设备,实现指纹注册和认证功能的独立部分。上层构件,是指在基础构件之上,自己实现中间件或者利用中间件建立起来的执行应用的部分,也可以称为应用构件。  指纹产品基础构件包括:指纹传感器(指纹 Sensor )、指纹传感器驱动程序( Driver )、指纹传感器底层接口程序(底层 SDK ),以及指纹算法程序。其中前三个都是作为一个整体对待,笼统的称为指纹  SENSOR 。指纹基础构件的这四个部分,对于任何一类的指纹识别产品都是不可缺少的,所以称之为基础构件。  指纹产品中间构件,或者叫指纹应用中间件,它专门完成指纹注册和认证功能,所以它一定包含指纹识别算法。它屏蔽了应用层对设备层(基础构件中的 SENSOR 以及 DRIVER )的直接访问。它既可以表现为软件控件( ocx ),也可表现为硬件模块,也就是俗称的指纹脱机模块。  指纹产品上层构件,它是用户需求的实现部分,其形态不定,可以是一个完整的指纹应用软件产品,如指纹文件保护系统、计算机登录指纹保护系统。也可是指纹考勤机、指纹保险柜等这类嵌入式硬件产品。  在了解了指纹识别产品的构成要件之后,我们再一层层采用解析的方法来分析每个构件中的技术成份。  2 、指纹产品基础构件   2.1、基础构件之指纹SENSOR
  从基础构件层来看,其中的指纹SENSOR,是指纹图像自动采集和生成部分,是整个指纹识别产品的数据输入端。绝大多数指纹SENSOR通过光学扫描、晶体热敏、晶体电容等三种主要传感原理采集指纹图像。衡量一个指......

阅读全文(3364) | 评论:2