VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer开源 >>> 可重用类
我也来开源一个!>>>


类似苹果那样 的顶端有工具栏
 
 
...类似苹果那样 的顶端有工具栏
作者:heartofdra heartofdra张贴于2007-05-28 20:32:16.0,共阅读1300次,回复0
对话窗口动态出现
 
 
...对话窗口动态出现
作者:heartofdra heartofdra张贴于2007-05-28 20:28:28.0,共阅读1088次,回复0
快速排序
 
 
/* qsort -- qsort interface implemented by faster quicksort. J. L. Bentley and M. D. McIlroy, SPE 23 (1993) 1249-1265. Copyright 1993, John Wiley. */ /*assume sizeof(long) is a power of 2 */ #define SWAPINIT(a, es) swaptype = \ (a-(char*)0 | es) % sizeof(long) ? 2 : es > sizeof(long); #define swapcode(TYPE, parmi, parmj, n) { \ register TYPE *pi = (TYPE *) (parmi); \ register TYPE *pj = (TYPE *) (parmj); \ do { \ register TYPE t = *pi; \ *pi++ = *pj; \ *p ...
作者:J. L. Bentley and M. D. McIlroy wyc139888张贴于2007-05-25 09:52:05.0,共阅读1281次,回复0
CHistoryComboBox 带历史记录的ComboBox
 
 
有时候用DropDown型的CComboBox,希望能够保存用户最近输入的记录,我自己写了这样一个类,将最近的用户记录保存到注册表中。class CHistoryComboBox : public CComboBox { public: INT_PTR LoadHistoryValue(void); //读取历史记录 void SetMaxNum(int num); //设置最大记录数 void AddHistoryValue(); //保存历史记录 } 为界面上的CComboBox添加控制变量,控制变量类型为CHistoryComboBox即可使用。在ComboBox上敲回车,当前记录将被存入注册表。 你也可以在程序中调用m_ctlCombo.AddHistoryValue()保存当前记录。 使用 SetMaxNum能够设置保存记录的总条数。注意:在同一个工程,如果要使用多个CHistoryComboBox,你必须保证每一个的ID都不相同!!!
作者:不祥 longhorn张贴于2004-12-25 21:48:24.0,共阅读3517次,回复3
一个简单的虚线类
 
 
这是一个简单的虚线类,可以通过构造函数指定虚线的宽度,颜色,和线形 CDashLine(CDC* pDC, // 指定设备环境 COLORREF Color1, //指定A,C段字体颜色 COLORREF Color2, //指定B,D段字体颜色 int nWidth, // 指定虚线线宽 int Type[4] // 指定虚线线形 分别对应A,B,C,D四段的长度 ); 一旦完成了类的构造,就可以使用MoveTo(x, y) 和 LineTo(x, y) 函数来绘制虚线。MoveTo() 函数将重置初始位置和内部的颜色顺序,而 LineTo() 函数从当前的位置和颜色开始。 不要忘记保存当前的画笔,在使用完CDashLine后select回来,在使用完CDashLine之前不要删除该DC。 ...
作者:热的 hamxj张贴于2007-02-28 16:27:28.0,共阅读1740次,回复1
Faq:继承CListCtrl表示表格
 
 
用户问题解答 提问用户 主题 提问状态 fuzzy(fuzzy) 请问VC里面有什么控件可以显示一个表格? 已解决 问题解答归纳: 1. DataGrid控件 2.CListCtrl和CListView控件 例解: Class CExListCtrl:CList (见附件) 关键函数:void CExListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)下载后直接include即可,具体调用如下: 使用CListCtrl模拟表格: CRect rect(0,0,0,0); CExListCtrl listctrl; listctrl.Create( WS_CHILD| WS_VISIBLE| WS_VSCROLL| LVS_REPORT| LVS_SHOWSELALWAYS| LVS_SINGLESEL| LVS_OWNERDRAWFIXED| LVS_NOLABELWRAP| WS_EX_CLIENTEDGE, rect, this, IDC_LIST); ...
作者:不祥 xler张贴于2004-05-21 17:30:50.0,共阅读7366次,回复4
一个自适应大小的位图控件
 
 
这是一个自适应大小的位图控件演示程序 通过调整对话框字体大小可以观察出CBitmapPicture类和MFC的Picture控件之间的差别 关键代码如下: ... BitmapPicture.h ... class CBitmapPicture : public CStatic { // Construction public: CBitmapPicture(); // Operations public: BOOL SetBitmap(HBITMAP hBitmap); // Not recommended BOOL SetBitmap(UINT nIDResource); BOOL SetBitmap(LPCTSTR lpszResourceName); BOOL ReloadBitmap(); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CBitmapPicture) protected: virtual void PreSubclassWindow(); virtua ...
作者:Chris Maunder hamxj张贴于2007-02-28 15:45:50.0,共阅读2030次,回复0
具有XP风格的图标菜单
 
 
具有XP风格的图标菜单,直接include调用即可具有XP风格的图标菜单,直接include调用即可
作者:不祥 xler张贴于2004-05-01 00:54:46.0,共阅读6680次,回复8
支持应用级协议的Socket通讯包CHost
 
 
C/S模式是网络应用开发中使用最普遍的一种方式,但是如果在MFC基础上做开发总感觉不是很方便,程序员需要将较多的时间和精力放在通讯、协议包的实现上面,而实际上,应用的核心功能却要比这些基础部分重要的多。 CHost开发包为笔者自行开发,主要完成对客户端、服务器端、以及应用级协议包格式的封装。 CHost开发包主要包括以下几个类: CBlockingSocket: 支持阻塞方式的Socket,相对于CSocket而言,CBlockingSocket实现了对超时的处理,并允许对Windows消息的并行处理; CHost: CBlockingSocket的派生类; CServer: CHost的派生类,实现对服务器端操作的封装,支持TCP/UDP; CClient: CHost的派生类,实现对客户端操作的封装,支持TCP/UDP; CProtocol: 实现对应用级协议包的封装,类定义如下: class CProtocol { public: CProtocol(int nSize); bool IsValid(); int m_nCommand; //协议号 int m_nSize; //包大小 private: long m_lHead; //标识码 }; m_lHead用以判断数据包的版本,它的值由用户在s ...
作者:不祥 bluejoe张贴于2004-04-11 16:16:53.0,共阅读4552次,回复1
颜色选择的ccombox类
 
从codeguru上看到的,使用过,觉得还不错,转载过来!使用很简单,看看源码就知道了,这里不详细解释了!
作者:不祥 jerry张贴于2004-06-14 20:28:56.0,共阅读3062次,回复1
写注册表类
 
提供方便的接口写注册表继承或者直接引入本类,可以简单地实现改写注册表,写入自己所要键值的功能。 本类提供四个接口: BOOL SetRegStringValue(CString dirkey,LPCTSTR Subkey,LPCTSTR Value); //自动创建子键并赋值 BOOL SetRegDwordValue(CString dirkey,LPCSTR Subkey,DWORD Value);//自动创建子键并赋值 CString GetRegStringValue(CString dirkey,LPCTSTR subkey); DWORD GetRegDwordValue(CString dirkey,LPCTSTR subkey);测试环境:windows2000 server
作者:不祥 xler张贴于2004-05-13 15:08:43.0,共阅读3554次,回复1
俄罗斯方块部分
 
俄罗斯部分源代码俄罗斯
作者:不祥 ISeekYou张贴于2004-02-23 10:53:02.0,共阅读2710次,回复1
自动生成一个XML解析类
 
一篇有关自动代码生成和XML的文章,推荐转载 http://www.codeproject.com/tips/XMLParserGen.asp Introduction I think your first thought about this article would be that :"oh, another tool to parse XML like MSXML". In fact, this article is based on MSXML. What I will present for you is not a general XML parser ,but a generator to create specific XML parser . The purpose of my article is not to teach you some knowledge about a grammar parsing technique ,but to provide you some idea of auto code generation through an XML parser generator. XML parser may not be of any use in your programming area ,but that does not m ...
作者:不祥 rone张贴于2004-06-03 11:40:40.0,共阅读3835次,回复1
snoopy每日一译-全自动组合CheckBox类CGroupCheckBox
 
snoopy每日一译-全自动组合CheckBox类CGroupCheckBox by:Geno Carman 2004.5.14 翻译:snoopy 环境: VC++ 6.0, WinXP 我决定我需要一个组合框和CheckBox框的集合的控件。于是我开始写一个。当我遇到困难,我去搜索看是否别人已经实现。当看了Ming Liu的文章"CGroupCheck - Checkbox associated with a groupbox",我解决了这个困难。我感谢他为我铺设的道路,虽然我实现的方法不一样。 以下是一个使用我的CGroupCheckBox控件的例子: 当点击checkbox会enables/disables所有的在groupbox里的控件。父窗口把控件看作一个checkbox。 风格: 注意到上面的对话框包含CGroupCheckBox的两种风格。一种指出包含所有控件;另一种忽略Static ID,只有那些ID不是IDC_STATIC的控件才被enables/disables。可以使用SetStyle()设定风格。 SetStyle()是你唯一需要调用的函数,而且是改变默认风格才需要调用。下面是一个例子: BOOL CGroupCheckBoxDemoDlg::OnInitDialog() { CDialog::OnIn ...
作者:不祥 ycr40张贴于2004-05-17 14:43:30.0,共阅读2822次,回复0
snoopy每日一译-科学计数法EDIT控件
 
 
snoopy每日一译-科学记数法EDIT控件 by:Mike Sanclon 2004.5.12 from:codeGuru 翻译:snoopy NumEdit是一个简单的控件,它使用户只能输入一个双精度类型的科学记数格式的数:例如1.23, 12e4, -12E4, 等等。成员函数GetValue()和SetValue() 使处理双精度数值简单一些。 使用方法很简单,只需声明一个CNumEdit类型的变量。 译者注:在vs.net中编译会发生错误,将下面的代码 if ((text [caret.x-1] == 'e') || (text [caret.x-1] == 'E')) 改成: if(text.GetAt(caret.x-1)=='e'||text.GetAt(caret.x-1)=='E') 即可。
作者:不祥 ycr40张贴于2004-05-13 08:55:20.0,共阅读2396次,回复0
snoopy每日一译-迅速伸缩对话框类CSnapDlg
 
我建立一个比较复杂的可以调整size的对话框应用程序,当我调整对话框大小的时候,大量的控件一闪一闪的把我烦死了。我想要的是只在我停止调整对话框大小时,控件的位置大小一步到位。snoopy每日一译-迅速伸缩对话框类CSnapDlg by: Mike Scanlon 2004.5.11 from:codeGuru 翻译:snoopy 我建立一个比较复杂的可以调整size的对话框应用程序,当我调整对话框大小的时候,大量的控件一闪一闪的把我烦死了。我想要的是只在我停止调整对话框大小时,控件的位置大小一步到位。 使用方法: 1、在StdAfx.h中加入SnapDlg.h。 2、从修改你的对话框使它从CSnapDlg继承。 3、修改你的对话框的构造器,使它调用CSnapDlg的构造器: CYourDlg::CYourDlg(CWnd* pParent /*=NULL*) : CSnapDlg(CSnapDialogDlg::IDD, pParent) 4、修改消息影射,使它通过CSnapDlg影射消息: BEGIN_MESSAGE_MAP(CSnapDialogDlg, CSnapDlg) 5、重载SizeDialog()函数调整对话框中控件的位置和大小。 6、确保你的对话框的OnSize, OnSizing, OnInitDialog ...
作者:不祥 ycr40张贴于2004-05-12 13:03:23.0,共阅读2580次,回复0
多文件选择文件对话框例子
 
其实很简单了,自己直接用 CFileDialog 也是一样..很多不会用 CFindFile 的也看看这个吧.
作者:不祥 Bccv张贴于2004-04-16 09:43:35.0,共阅读3148次,回复1
snoopy每日一译-求星期几
 
注意事项: 在现在广泛使用的阳历中,公元1年(AD 1)之前是公元前1年(1 BC),不存在公元0年。和阳历不同,天文历法(astronomical reckoning)有0年。为了区别起见,天文历法不使用AD和BC,而使用正负号代替。天文年+1对应于公元1年(AD 1),而天文年0对应于公元前1年(1 BC),天文年-1对应于公元前2年(2 BC)。为了方便起见,我在本文及程序中都使用天文历法。 预览: 算法是基于这样的事实:+1年1月1日是星期一,+2年1月1日是星期二,依此类推。这是因为365%7=1!有了这个知识,我写了这个程序。我会解释我怎样得到这个结果的,希望对别人有点帮助。 How and Why 在我写这个程序之前,我注意到没有什么类和控件告诉我+1年1月1日是星期几,因此我想没有简单的传统方法去知道一个随机的日期是星期几。我必须另劈捷径,或者,至少改进旧的。 计算星期几传统的方法是基于一个已知星期数的基准日期。因为基准日期可以随机选择,我选择一个特殊的日期以使事情简单化。1月1日似乎是最好的选择,这样的话我不用考虑从基准日期到该年末有多少天。现在,我该选择哪一年呢?我选择0年。假设我们想知道YYYY年MM月DD日是星期几。如果我们知道了YYYY年1月1日是星期几的话,答案就很容易了。计算YYYY年1月1日的公式: theDayOfJan_1( ...
作者:不祥 ycr40张贴于2004-04-24 08:05:48.0,共阅读2198次,回复0
白乔原创:Shell基础类CShell
 
本类封装了一些常用的Shell操作,包括:创建快捷方式,获取特殊目录路径(如:我的电脑)、枚举制定目录(如:桌面)的子项列表等。头文件: // Shell.h: interface for the CShell class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_SHELL_H__6D15D05C_CD8B_4422_BFAF_D0A70F36E352__INCLUDED_) #define AFX_SHELL_H__6D15D05C_CD8B_4422_BFAF_D0A70F36E352__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CShell //Shell文件基础类 { public: BOOL FreeMemory(void * pBuffer); BOOL CreateLink(LPCITEMIDLIST lpi, CString sPathLink, CString sDescription = "", BOOL bByName = false); LPITEMIDLIST ...
作者:不祥 bluejoe张贴于2004-04-20 20:52:12.0,共阅读2548次,回复0
轻轻松松将你的程序加上TrayIcon
 
 
使用CTrayIconDialog开发包可以在最短时间内将你的对话框程序加上通知栏图标及菜单。 CTrayIconDialog包主要包含2个类:CTrayIconDialog和CTrayIcon。前者完成对话框对TrayIcon的支持,后者则专门实现对TrayIcon的封装。使用CTrayIconDialog包的步骤非常简单。 首要条件是你的应用必须是一个基于对话框的应用,或者你需要加上TrayIcon的窗口必须是个对话框。接下来你需要将CTrayIconDialog设置成你的对话框的基类,也就是说,你必须将CDialog替换成CTrayIconDialog。 记住,与你的对话框相关的所有的CDialog都要换成CTrayIconDialog。包括BEGIN_MESSAGE_MAP里面,还有一些函数里对基类CDialog函数的调用,等等。 替换完毕,你的程序运行时就会出现TrayIcon,如图所示: 默认的图标是空的,提示文字告诉你:请使用GetTrayIcon()->Modify来设置你的图标。你可以照办,示例程序里面在CTrayIconDlgDemoDlg::OnInitDialog()里面就增添了以下语句: //装载图标 m_hMyIcon = AfxGetApp()->LoadIcon(IDI_ICON1); //设定提示文字 GetTrayIcon( ...
作者:不祥 bluejoe张贴于2004-04-18 16:17:41.0,共阅读2804次,回复1

页次: 4/5页 记录总数81 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :