- 博客(18)
- 资源 (21)
- 收藏
- 关注
转载 Visual C++中实现双缓冲
双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板。首先我们在内存环境中建立一个“虚拟“的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制好的图形“拷贝”到另一块黑板(屏幕)上。采取这种方法可以提高绘图速度,极大的改善绘图效果。 // 在OnPaint()函数中可以如下所述实现双缓冲,其主要步骤分为四步:void CGDIPlusCtrl::
2009-09-27 10:00:00 608
Visual C++中实现双缓冲
双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板。首先我们在内存环境中建立一个“虚拟“的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制好的图形“拷贝”到另一块黑板(屏幕)上。采取这种方法可以提高绘图速度,极大的改善绘图效果。 // 在OnPaint()函数中可以如下所述实现双缓冲,其主要步骤分为四步:void CGDIPlusCtrl::...
2009-09-27 10:00:00 136
原创 SPin控件增减小数
// 初始化BOOL CGraphCtrDlg::OnInitDialog(){ CDialog::OnInitDialog(); m_spin.SetRange(0.1,10); // 设置范围 m_spin.SetBuddy(GetDlgItem(IDC_TXTY)); // Spin控件绑定Edit控件 m_spin
2009-09-23 16:58:00 2502 1
SPin控件增减小数
// 初始化BOOL CGraphCtrDlg::OnInitDialog(){ CDialog::OnInitDialog(); m_spin.SetRange(0.1,10); // 设置范围 m_spin.SetBuddy(GetDlgItem(IDC_TXTY)); // Spin控件绑定Edit控件 m_spin...
2009-09-23 16:58:00 432
转载 C#的多线程机制探索
http://www.vchome.net/dotnet/dotnetdocs/dotnet1.htm http://www.yaosansi.com/post/1344.html
2009-09-09 17:49:00 520
C#的多线程机制探索
http://www.vchome.net/dotnet/dotnetdocs/dotnet1.htm http://www.yaosansi.com/post/1344.html
2009-09-09 17:49:00 77
原创 VS2005打开VS2008项目
1、去掉源代码目录代码的只读权限。2、修改.sln中的Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008 为修改为Microsoft Visual Studio Solution File, Format Version 9.00# Visual Studio 2005 此时可以打开项目了。
2009-09-08 12:14:00 498
VS2005打开VS2008项目
1、去掉源代码目录代码的只读权限。2、修改.sln中的Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008 为修改为Microsoft Visual Studio Solution File, Format Version 9.00# Visual Studio 2005 此时可以打开项目了...
2009-09-08 12:14:00 86
原创 GetManifestResourceStream得到的Stream是null的解决
用GetManifestResourceStream获取的资源要保证包含在工程中,不包含在工程中即使在同一目录下也没用。包含在工程中以后把该文件的“属性”中的“生成操作”改为“嵌入的资源”。就可以用了通过GetManifestResourceNames(好像是这个名字)把所有的名字都取出来,然后看看有没有你要的。一般是Assembly名.类名.Manifest.Resource。 // 获
2009-09-04 18:03:00 2382 1
GetManifestResourceStream得到的Stream是null的解决
用GetManifestResourceStream获取的资源要保证包含在工程中,不包含在工程中即使在同一目录下也没用。包含在工程中以后把该文件的“属性”中的“生成操作”改为“嵌入的资源”。就可以用了通过GetManifestResourceNames(好像是这个名字)把所有的名字都取出来,然后看看有没有你要的。一般是Assembly名.类名.Manifest.Resource。 //...
2009-09-04 18:03:00 117
原创 菜单手动添加快捷键
char []sepc = new char[]{+};string str = "Alt+A";string[] shortCutKeys = str.Split(sepc);Keys keys = Keys.None, key = Keys.None;foreach (string shortCutKey in shortCutKeys){ key = (K
2009-09-04 18:00:00 557
菜单手动添加快捷键
char []sepc = new char[]{'+'};string str = "Alt+A";string[] shortCutKeys = str.Split(sepc);Keys keys = Keys.None, key = Keys.None;foreach (string shortCutKey in shortCutKeys){ key = (K...
2009-09-04 18:00:00 105
原创 C#操作使用xsd的xml文件时XPath表达式不正确的问题
原本操作没有用xsd的xml文件时,XPath可以找到节点,但给xml文件关联上.xsd文件(Schema规范),就出错了,根据Xpath找不到节点了! 问题出现时的Plugin.xsd文件<xs:schema id="Plugin" targetNamespace="http://tempuri.org/Plugin" elementFormDefaul
2009-09-04 16:59:00 1407
C#操作使用xsd的xml文件时XPath表达式不正确的问题
原本操作没有用xsd的xml文件时,XPath可以找到节点,但给xml文件关联上.xsd文件(Schema规范),就出错了,根据Xpath找不到节点了! 问题出现时的Plugin.xsd文件<?xml version="1.0" encoding="utf-8"?><xs:schema id="Plugin" targetNamespace="ht...
2009-09-04 16:59:00 128
原创 插件应用,使用反射动态调用类成员:InvokeMember
/// /// 调用插件的方法/// /// 插件索引/// 方法名称/// public bool InvokePluginMember(int pluginIndex, string functionName){ try { Type tObjectType = Plugins[pluginIndex].PluginAs
2009-09-03 16:51:00 611
插件应用,使用反射动态调用类成员:InvokeMember
/// <summary>/// 调用插件的方法/// </summary>/// <param name="pluginIndex">插件索引</param>/// <param name="functionName">方法名称</param>/// <return
2009-09-03 16:51:00 133
转载 .NET上根据字符串动态创建控件
首先,利用System.Type.GetType方法,获得字符串中指定的控件的类型实例。 这里需要注意这个字符串的语法,根据msdn的解释: 1.按名称和签名隐藏会考虑签名的所有部分,包括自定义修饰符、返回类型、参数类型、标记和非托管调用约定。这是二进制比较。 2.对于反射,属性和事件按名称和签名隐藏。如果基类中有同时带 get 访问器和 s
2009-09-02 13:57:00 495
.NET上根据字符串动态创建控件
首先,利用System.Type.GetType方法,获得字符串中指定的控件的类型实例。这里需要注意这个字符串的语法,根据msdn的解释:1.按名称和签名隐藏会考虑签名的所有部分,包括自定义修饰符、返回类型、参数类型、标记和非托管调用约定。这是二进制比较。2.对于反射,属性和事件按名称和签名隐藏。如果基类中有同时带 get 访问器和 set 访问器的属性,但派生类中仅有 get 访问...
2009-09-02 13:57:00 123
Net2.0 解析Json库
2014-02-19
Java Mail发送邮件时用到的Jar包
2013-04-07
WINDOWS高级编程指南.pdf
2011-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人