技术文章
邓学彬
彗星网络站长,彗星小助手软件作者,从事软件开发网站制作。注重UI设计。
展开
-
浏览器缓存专题
览器缓存是很重要的,一次交互,有95%以上的时间是在处理前端的,如果能提高前端的性能,对提高整个系统的性能是很有帮助的。本专题主要讲的是如何更好地使用浏览器缓存,同时包括了一些今后浏览器缓存的发展趋势,如:globalStorage等。影响浏览器本地缓存的因素及解决方案因素:子域名具体描述:berg.sharej.com/img/123.gif 这个图片,如果按照 sharej.com/ber转载 2008-05-02 11:02:00 · 1670 阅读 · 0 评论 -
采用四缓冲提高自绘界面的效率
做过自绘的朋友都知道,如果直接画到窗口DC上,频繁更新会导致窗口比较闪。所以大家都喜欢使用双缓冲解决这个问题。(即先画到内存DC,全部画完了再一次复制到窗口DC上)。在编写DirectUI界面时,子控件并不是真实存在的窗口,只是直接画到同一个窗口上的一些子区域。如果每一个子控件更新状态(比如获取焦点、鼠标热点及按下等状态)都重画所有子控件,那效率就低了,采用GDIPlus时这个效率的区别更明显,C原创 2011-06-09 11:19:00 · 9838 阅读 · 15 评论 -
一个利用windows api控制放音音量和录音麦克风音量实现类(c++代码)
1、头文件(Mixer.h)// Mixer.h: interface for the CMixer class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_MIXER_H__7369BAA5_012E_467E_AD1E_转载 2011-06-11 08:57:00 · 17980 阅读 · 7 评论 -
在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
为了解决在主线程中Wait的问题,微软专门设计了一个函数MsgWaitForMultipleObjects,这个函数即可以等待信号(thread,event,mutex等等),也可以等待消息(MSG)。即不论有信号被激发或者有消息到来,此函数都可以返回。转载 2011-04-02 15:28:00 · 4223 阅读 · 5 评论 -
解决绘图时闪烁问题的一点经验
清除屏幕闪烁(转自网上)由于作图过于复杂和频繁,所以时常出现闪烁的情况,一些防止闪烁的方法,如下: (1)将Invalidate()替换为InvalidateRect()。Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。不要为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,事实上,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比起重画那些不需要重画的内容所需转载 2011-03-22 14:34:00 · 8005 阅读 · 2 评论 -
用MFC创建个性的对话框
本文涉及以下几个疑难问题: 1. 改正对话框的背景颜色 2. 用位图作为对话框的背景 3. 改变静态控件文字和背景颜色 4. 改变编辑框文字和背景颜色 5. 改变CheckBox的文字和背景颜色 6. 改变RadioBox的文字和背景颜色 7. 改变按钮的背景颜色和文字颜色 8. 在对话框中应用Picture控件 9. 改正Picture控件呈现的位图 10.应用LoadImage从资源装入位图想使自个的热门软件与众不同就要给热门软件加点“色”,一个颜色搭配协调的窗口要比windows千篇一律的灰底黑字更能转载 2011-03-17 03:24:00 · 6545 阅读 · 3 评论 -
VC之美化界面篇(转载)
关键词界面美化 摘要本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 正文1. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还记得它们的精美界面: 图1 瑞星杀毒软件的精美界面程序的功能如何如何强大是一回事,它的用户界面则是另一回事转载 2011-02-21 10:44:00 · 5850 阅读 · 6 评论 -
mciSendString的常用命令
<br />Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _<br /> (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _<br /> ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long<br /><br /> mciSendString是用转载 2010-11-04 19:35:00 · 1662 阅读 · 0 评论 -
View和Control的区别(如何在对话框上使用CView类)
View和Control的区别(如何在对话框上使用CView类)CView继承类,和其他窗口类的区别,很重要的就是对CDocument类和CFrameWnd类的操作,而其中,涉及CDocument类的操作,都进行了有效性判断(m_pDocument != NULL),CView类初始化的时候,m_pDocument = NULL,因此并不影响CView类作为控件的使用.....原创 2010-12-22 15:22:00 · 3007 阅读 · 0 评论 -
如何抓取QQ2010的聊天框
<br />做这件事难点在于,QQ2010 的聊天框用的是无窗口RichEdit,因此不能像普通的RichEdit那样通过FindWindow找到窗口然后发送WM_GETTEXT来获取文本,但是是不是就没有办法了呢,当然不是,这篇文章就要告诉大家抓取QQ2010(以及之后版本)的QQ聊天框信息的一些基本思路。<br />大家先用Dependency Walker看一下RICHED20.dll这个文件,这个文件位于Tencent/QQ/Bin目录下,同样也位于Windows/System32目录下,可以看到该转载 2011-05-03 13:32:00 · 8185 阅读 · 4 评论 -
如何编译Windows7、 Vista的大图标(128*128, 256*256)?
Windows7、 Vista的图标Windows7、 Vista的图标包含一个高分辨率的256 × 256像素的图像。 这些图像专门用于Windows7、 Vista和他们使用PNG基于压缩存储。 Explorer的动态重采样所需的分辨率。Windows7、 Vista映像格式翻译 2011-07-09 10:47:24 · 4497 阅读 · 1 评论 -
任务栏左下角图标实现方法及排列规范协议
任务栏左下角图标是什么?这里说的,是在任务栏左下角,紧靠"开始"按钮旁边的图标.目前采用这种图标的常用软件有:"小Q书桌"、"360软件小助手"、"云端软件"等实现方法转自"problc"的文章,http://blog.csdn.net/problc/article/details/7039450首先用SPY++之类的工具先探测一下这个图标.Win7原创 2012-12-11 00:03:01 · 5629 阅读 · 1 评论 -
VC版DoEvents/处理事件
VB下有一个DoEvents方法(易语言中叫"处理事件"),可以让程序在执行操作的同时仍可以处理其他事件,用这个方法可以有效地解决画面无法刷新的问题。MSDN说明: DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。 DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如原创 2012-12-10 15:46:35 · 8938 阅读 · 6 评论 -
利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
前言我们经常看到 tencent://.. thunder:// 这两种开头的网址,往往觉得很奇怪,很想弄懂其中的原理,是如何实现的,我查找了相关的 资料,终于找到了,跟大家分享下。原理篇微软官方说明:http://msdn.microsoft.com/en-us/library/Aa767914.aspxtencent://.. thunder:// 是 腾原创 2012-11-25 15:42:57 · 7896 阅读 · 2 评论 -
CListCtrl全选与反选
这里说的选择是指具有CheckBox风格的CListCtrl控件,选中CheckBox没有技术含量,只是刚才看见论坛里有位朋友在找,所以发到这里来,方便需要的朋友搜索. //以下代码中,CMyListCtrl继承自CListCtrl//全选CMyListCtrl::SelectAll(){ int nCount=GetItemCount(); for(i原创 2012-09-19 00:43:11 · 4898 阅读 · 1 评论 -
经典的SQL语句收藏
下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助。新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' null ,[字段2] ntext null ,[字段3] datetime,[转载 2008-12-03 14:30:00 · 1855 阅读 · 0 评论 -
VC 为程序创建快捷方式的详细讲解
有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径 HRESULT SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder,转载 2011-11-09 18:38:38 · 2644 阅读 · 0 评论 -
VC 获取系统特殊文件夹的路径如:系统目录,桌面等
如果需要,请在StdAfx.h中添加 #include TCHAR MyDir[_MAX_PATH]; SHGetSpecialFolderPath(this->GetSafeHwnd(),MyDir,CSIDL_APPDATA,0);AfxMessageBox(MyDir);其中第三个参数CSIDL_APPDATA可以为以下的值: CSIDL_BITBU转载 2011-11-09 18:19:40 · 4528 阅读 · 1 评论 -
判断当前进程是否"以管理员身份运行"的
判断当前进程是否"以管理员身份运行"的,是否有管理员权限.成功返回真,失败返回假.仅在Vista、Windows7有效,更低版本的系统直接返回假.BOOL IsAdministrator() {//判断是否管理员模式 BOOL bIsElevated = FALSE; HA原创 2011-07-17 18:10:50 · 14112 阅读 · 4 评论 -
RGB和HSL之间的转换 C++实现
RGB和HSL之间的转换 C++实现 typedef struct{ int red; // [0,255] int green; // [0,255] int blue; // [0,255]}COLOR_RGB;typedef struct{ float hue; // [0,360] float saturation; // [0,100]转载 2010-12-12 01:54:00 · 4797 阅读 · 1 评论 -
[转载]无边框对话框改变大小
实现效果需要处理以下这三个消息:WM_NCHITTEST WM_SETCURSOR WM_NCLBUTTONDOWN 消息处理函数:UINT CXXXDlg::OnNcHitTest(UINT nHitTest, CPoint point){ CRect rect; GetWindowRect(&rect); if(point.x = rect.right-3) return HTRIGHT; else if(point.y = rect.bottom-3) retu转载 2010-12-09 14:52:00 · 2726 阅读 · 0 评论 -
灰度图像淡入到彩色图像与彩色图像淡出到灰度图像
灰度图像与彩色图像之间的淡入淡出与指定背景的淡入淡出相比,仅要将指定的背景色改为经计算得到灰度值,可创建一个灰度调色板加以保存。关于彩色位图灰度值的求法,前面曾有介绍,这里不再细说。返回:位图的淡入淡出具体创建过程请见源程序://参数说明://hDIB -位图句柄//xDest -显示位图的左上角x坐标//yDest -显示位图的左上角y坐标//nLoops -循环次数//nDelay转载 2009-11-10 19:34:00 · 1862 阅读 · 0 评论 -
获得Frame或Iframe中的IHTMLDocumnet2接口
IHTMLDocument2* GetDocFromFrame(IHTMLDocument2* pDoc2){CComPtr pDoc3;CComPtr pDoc2Frame;hr = pDoc2->QueryInterface(IID_IHTMLDocument3,(void**)&pDoc3) ;if(hr==S_OK){ CComBSTR bstrNam转载 2009-09-30 21:59:00 · 3014 阅读 · 0 评论 -
打开控制面板的命令
rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cplwinexec(Pchar(StrCommand),sw_Show); 其中"StrCommand"代表以下命令之一(使用Windows中的运行不要加引号): "rundll32 shell32,Control_RunDLL" - 运行控制面板 "rundll32 shell32,转载 2009-10-01 01:44:00 · 4592 阅读 · 0 评论 -
IHTMLDocument2接口
MIDL_INTERFACE("332c4425-26cb-11d0-b483-00c04fd90119")IHTMLDocument2 : public IHTMLDocument{public: virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_all( /* [out][retval] */ IHTML原创 2009-09-30 19:17:00 · 4792 阅读 · 0 评论 -
已知HICON,如何将其保存为图标文件?以及ICO文件的格式
void CCsdn9Dlg::OnOK() { // TODO: Add extra validation here //CreateStreamOnHGlobal //IPicture::Save LPBYTE lpBits=NULL; long size=0; HICON hicon=LoadIcon(AfxGetInstanceHandle(),MAKE转载 2009-09-21 08:34:00 · 4136 阅读 · 1 评论 -
C++ 语言基础(1)
入门简介 变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数 C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚。读者学完本书并使用转载 2009-04-03 13:09:00 · 2279 阅读 · 0 评论 -
delphi 拨号上网代码
转贴用MODEM拨号上网,仍是大多数个人网民选择上网的方式.如果能在我们的应用程序中管理拨号网络(如Foxmail、Sygate中的拨号功能),无疑将会方便我们的软件用户(不用再切换应用程序,运行拨号网络),提高我们的软件的友好性从而提高软件的竞争力. 在WIN9X下,如果安装了拨号网络,则在WINDOWS系统的系统目录System下将有两个拨号网络管理程序库RasApi32.DLL和RasAp转载 2009-04-03 01:27:00 · 3524 阅读 · 0 评论 -
用API获取IE缓存文件
[structlayout(layoutkind.sequential, charset=charset.auto)] public struct internet_cache_entry_info ...{ public int dwstructsize; public intptr转载 2008-05-02 11:36:00 · 1937 阅读 · 0 评论 -
Webbrowser控件判断网页加载完毕的简单方法
一般情况下,当ReadyState属性变成READYSTATE_COMPLETE时,Webbrowser控件会通过触发DocumentCompleted事件来指示网页加载完毕。但当加载的网页包含frame时,可能会多次触发该事件,所以不能简单地通过它来判断网页加载完毕。从微软的官方网站上了解到,并非每个frame都对应了一个DocumentCompleted事件,只有触发了DownloadBe翻译 2010-01-27 13:04:00 · 19044 阅读 · 0 评论 -
PSD格式文件的读取
介绍*.PSD文件的读取方法,并提供完整读取函数。其中:m_Rect为目标区域,m_lpDDS7为目标DirectDraw表面,m_pbAlphaMask为目标Aplha通告指针。Read16函数为从指定文件当前位置读取一个WORD,Read32函数为从指定文件当前位置读取一个DWORD。MAX_PSD_CHANNELS为24。以下就是*.PSD文件的读取方法,有兴趣的朋友可以继续深入研究,到时可转载 2010-02-16 22:27:00 · 4706 阅读 · 1 评论 -
win32 sdk下调用webbrowser控件
#include CComModule _Module;#include #include #pragma comment(lib,"atl")#pragma comment(lib,"User32.lib")LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){RECT rc;IWebBrowser2* iWebBrowser;VARIANT varMyURL转载 2010-10-06 19:14:00 · 7137 阅读 · 3 评论 -
获得document的iframe时有两种方法
1.通过get_frames获得IHTMLFramesCollection2接口,然后再获得iframe的document了,但是这种方法如果iframe和外层页面跨域会遇到E_ACCESSDENIED的问题;2.通过EnumObjects( OLECONTF_EMBEDDINGS, &pEnumerator )的方式获得iframe的document,这种方法不存在跨域的问题;原创 2010-09-07 10:44:00 · 5133 阅读 · 2 评论 -
简单有效-禁止其他人到你电脑上用QQ
<br />真的是非常简单,把以下代码编译成QQ.exe放到桌面上即了。(当然要记得改图标哦)<br />int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ UNREFERENCED_PARAMETER原创 2010-09-08 08:49:00 · 3029 阅读 · 4 评论 -
常用Windows消息、常量命名参考
<br />在WIN系统常量里,一般会以两到三个字母加个下划线作为前缀,从这些前缀里就能知道是什么类型的常量。<br />一般情况下,第一个字母为控件的头一个字母,第二个字母是M的是消息(Message)常量,S是风格(Style)常量,N是通知、事件(Notify)。<br />下面列出一些常量的常量前缀,为大家以后使用API、常量等带来方便。<br />以下内容由本人(彬·泪闯天涯)根据自己的经验整理,如果发现有什么错误请指正。<br />如果是使用VB、易语言等需要自己声明常量的开发工具,可以下载一些原创 2010-09-12 11:00:00 · 10658 阅读 · 2 评论 -
检测笔记本电脑的主板,cpu,硬盘的温度
<br />转自 http://blog.csdn.net/Treeyan<br /> <br />其实不算原创,资料几乎都是通过 google 来自 internet :)<br /><br />前段时间买了 hp-dv1702 笔记本电脑, 酷睿单核 cpu, 5400 转硬盘, 看电影挺不错的. 酷睿 cpu支持 speedstep 技术, 不忙的时候总是工作在 800MHz 左右,发热量小,BIOS 设定风扇启动温度为 cpu 75度,平常工作中一天下来风扇也几乎不转,硬盘的温度比较高,从网上查到转载 2010-07-19 01:21:00 · 4529 阅读 · 1 评论 -
图标文件的数据结构之研究
图标文件的数据结构之研究--------------------笔者竭诚请教真彩图标AND位图的数据格式 图标文件的数据结构之研究 这几天因为编写一个图标编辑程序,研究了一下图标的数据结构,颇有一些心得,写出 来与各位兄弟共享。(笔者注:以下所说的图标均为调色板模式的图标,真彩图标会特别注 明) 一、从图标的显示原理说起 每个图标都是由两个单独的位图组成的。转载 2010-03-19 23:02:00 · 1779 阅读 · 3 评论 -
[C#]读PSD图片
在CodeProject里发现一个读取的方法. 作者只要求在使用的时候保留Assembly的名称 "SimplePsd.dll ". 下面是全部原代码. CPSD.cs: using System; using System.IO; using System.Text; using System.Drawing; using System.Windows.Forms;转载 2010-03-13 23:10:00 · 3039 阅读 · 0 评论 -
DDS File Reference DDS的档案编号
DDS File Reference DDS的档案编号 google自动翻译:原文地址:http://msdn.microsoft.com/en-us/library/bb172993(VS.85).aspxThe DirectDraw Surface (.dds) file format is used to store textures and cubic environmen翻译 2010-03-12 14:25:00 · 2344 阅读 · 0 评论 -
通过IViewObject接口,取浏览器的图象,实现SNAP
今天又见到snap实现的文章,看来对此感兴趣的人挺多的.实现这个功能确实很眩,我也来做一个把玩一下. 我的做法不是 Control.DrawToBitmap ,而是直接QueryInterface 浏览器Com对象的 IViewObject 接口,用它实现的Draw方法,画到图象上. 首先定义IViewObject的接口声名,如下: 复制 保存using System;using S转载 2009-11-25 03:49:00 · 4209 阅读 · 1 评论