2011年5月27日

理解对象的类(class)与对象的类型(type)之间的差别

摘要: 一个对象的类定义了对象是怎样实现的,同时也定义了对象的内部状态和操作的实现。但是对象的类型只与它的接口有关,接口即是对象能响应的请求的集合。一个对象可以有多个类型,不同类的对象也可以有相同的类型。 当然,对象的类和类型是有紧密关系的。因为类定义了对象所能执行的操作,也定义了对象的类型。当我们说一个对象是一个类的实例时,即只该对象支持类所定义的接口。 C++语言的类既指定对象的类型又指定对象的实现。smalltalk程序不声明变量的类型,所以编译器不检查赋给变量的对象类型是否是该变量类型的子类型。发送消息时需检查消息接收者是否实现了该消息,但不检查接收者是否是某个特定类的实例。可能大家对上面的. 阅读全文

posted @ 2011-05-27 11:29 Daywei 阅读(1832) 评论(4) 推荐(0) 编辑

2011年5月3日

读写ini文件的方法

摘要: 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName); 其中各参数的意义: LPCTSTR lpAppName 是INI文件中的一个字段名. LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名 阅读全文

posted @ 2011-05-03 15:12 Daywei 阅读(862) 评论(0) 推荐(0) 编辑

2011年4月27日

winform窗体只创建一次对象一个窗体

摘要: 方法1,设置flag. 这个方法是最平常的了 ,没什么好说的,但不是最佳的选择,因为当窗口多了,难道每个窗口都在配一个flag吗?故鄙人推荐下面的方法。方法2 主窗口public partial class MainForm : Form { public static MessageReplyer m_messageReply = null; public MainForm() { InitializeComponent(); } private void toolStripButton1_Click(object sender, EventArgs e) { if (m_messageRe 阅读全文

posted @ 2011-04-27 15:43 Daywei 阅读(1131) 评论(0) 推荐(0) 编辑

2011年4月8日

Sqlite在C#中的应用(转)

摘要: 在 .NET 里面使用 SQLite, 我这里使用的wrapper是 System.Data.SQLite,它只需要一个dll,接口符合ADO.Net 2.0的定义,性能也不错,NHibernate用的也是它,目前支持ADO.NET 3.5了,支持集成在 VS2005 和 VS2008里面,而且支持wince,是个亮点因为符合ADO.NET的规范,所以使用方式,基本和 SqlClient, OleDb等原生的一致using System.Data;using System.Data.SQLite;//...using (SQLiteConnection cn = new SQLiteConne 阅读全文

posted @ 2011-04-08 17:25 Daywei 阅读(980) 评论(0) 推荐(0) 编辑

2011年3月26日

深入浅出ShellExecute(总结)

摘要: 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。1.CreateProcess因为使用复杂,比较少用。2.WinExec主要运行EXE文件。如:WinExec(’Notepad.exeReadme.txt’,SW_SHOW);3.ShellEx... 阅读全文

posted @ 2011-03-26 11:09 Daywei 阅读(12127) 评论(0) 推荐(1) 编辑

2011年3月22日

COleVariant与常用基本数据类型之间的转换(转)

摘要: 【ZZ】COleVariant与常用基本数据类型之间的转换COleVariant是数据库常用到的数据类型。它可以是字串,整型值,日期等。知道怎样将它转换为CString很有用处。设有CString A; COleVariant B; 来看看怎样将COleVariant转换为CString:switch(B.vt){case VT_BSTR: A=V_BSTRT(&B); break;//COleVariant是一个字串case VT_I2: A.Format(_T("%hd"),V_I2(&B));break;//是短整型case VT_I4: A.Form 阅读全文

posted @ 2011-03-22 15:41 Daywei 阅读(1257) 评论(0) 推荐(0) 编辑

2011年3月19日

VC下加载多种格式图片的方法总结

摘要: 尽管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明)OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCreatePictureIndirect来加载图片,不过相比而言OleLoadPicture函数简化了基于流的 阅读全文

posted @ 2011-03-19 15:47 Daywei 阅读(5383) 评论(0) 推荐(0) 编辑

2011年3月18日

四种程序启动画面的制作方法(VC)(转)

摘要: 摘 要:本文提供了四种启动画面制作方法。 使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应用程序,第四种适用于基于对话框的应用程序。1.利用组件库中的Splash Screen组件实现 (1)用Photoshop等制作启动画面图像,保存为bmp格式。 (2)用Appwizard建一个基于单文档的工程Splash。 (3)在资源中插入位图资源 打开VC++的资源编辑器,用鼠标右键单击Resources文件夹,选择Import命令,插入所制作的位图 阅读全文

posted @ 2011-03-18 15:16 Daywei 阅读(475) 评论(0) 推荐(0) 编辑

VC中#ifdef与#pragma once避免重复包含的区别(转)

摘要: 在用VC6.0向导生成的头文件中,经常可以看见如下的代码段:#if !defined(AFX_RESIZABLELAYOUT_H__INCLUDED_)#define AFX_RESIZABLELAYOUT_H__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000...#endif // !defined(AFX_RESIZABLELAYOUT_H__INCLUDED_)对于宏有基本了解的朋友应该都知道,头文件中如下的宏定义,是为了避免同样的头文件在同一个.C文件或者.CPP文件多次包含。#if !de 阅读全文

posted @ 2011-03-18 15:10 Daywei 阅读(820) 评论(0) 推荐(0) 编辑

2011年2月28日

设置菜单条及菜单项背景色(转)

摘要: 1、设置菜单条背景色view plaincopy to clipboardprint?//菜单栏m_wndMenu.LoadMenu(IDR_MAINFRAME);SetMenu(&m_wndMenu);//改变菜单条背景颜色MENUINFOmenuinfo;menuinfo.cbSize=sizeof(MENUINFO);menuinfo.fMask=MIM_BACKGROUND;menuinfo.hbrBack=::CreateSolidBrush(RGB(203,228,253));CMenu*pMenu=GetMenu();::SetMenuInfo(pMenu->m_h 阅读全文

posted @ 2011-02-28 13:38 Daywei 阅读(3034) 评论(0) 推荐(0) 编辑

导航

技术追求卓越 梦想创造未来