C++/VC/MFC
文章平均质量分 59
邓学彬
彗星网络站长,彗星小助手软件作者,从事软件开发网站制作。注重UI设计。
展开
-
VC6调用高版本LIB常见错误
在VC6里调用更高版本的VS编译的LIB(2005/2008/2018等),经常会出现一些错误。现在把常见错误整理一下,方便下次查询:error LNK2001: unresolved external symbol ___CxxFrameHandler3Q: VS2005编译的静态库, 在vc++6.0中连接出现错误error LNK2001: unresolved external symbol ___CxxFrameHandler3A: vs2005, c/C++ Code ge...原创 2020-06-27 09:29:39 · 1251 阅读 · 1 评论 -
libcmt.lib和libcmtd.lib链接库冲突错误的解决方案
在同一个项目中,所有的源文件必须链接相同的C运行时库。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single-Threaded或者Multithreaded版本的库,也就是说用了不同的库,就会导致这个警告的出现。总之,一句话,lib之间有冲突。需要删除导入的一些libs 版 本 类 型 使用的library 被忽略的library R ...原创 2020-03-02 20:52:40 · 1491 阅读 · 1 评论 -
基于MFC的VC++仿QQ浏览器源码(雏形)
这只是一个只开了头的源码,基于MFC模仿QQ浏览器5源码(雏形),类似DirectUI方式,无子控件。 ResSkin1.png为分层图片源码,可以用Fireworks打开编辑。 现在浏览器已经很多了,很多都做得很优秀。我当初想写浏览器,也没想过写多强大,更没想过占有市常只是准备写来自己用用,毕竟浏览器是平常使用最多的软件之一。加上一些自己需要的功能还是不错的。后来一看太麻烦了,没继续了。或许以后原创 2011-06-10 00:18:00 · 19766 阅读 · 4 评论 -
模仿酷狗7(Kugou7)界面源码
源码名称:模仿酷狗7(Kugou7)界面源码源码作者:邓学彬(泪闯天涯)源码说明:内含VC++源码、易语言源码各一份.包含所有图片源码(使用Fireworks编辑)开发环境:VC版--VS2005、Gdiplus;易语言版--易语言5,无模块实现方法:给窗口加上WS_EX_LAYERED样式,使用Gdiplus画出图片,然后UpdateLayeredWindow。处理WM_MOUS原创 2011-06-22 19:52:00 · 42993 阅读 · 64 评论 -
编辑框等控件边框美化
源码说明:美化能获取焦点控件的边框颜色,获取焦点后颜色不同(类似彗星小助手、QQ等软件),支持自定义颜色,支持单独设置各个控件颜色.实现方法:子类化,在WM_NCPAINT、WM_PAINT等消息自己画出边框开发环境:VS2005 MFC / 易语言源码下载:http://download.csdn.net/detail/cometnet/5663673// Ski原创 2013-06-28 10:55:21 · 20649 阅读 · 12 评论 -
标签背景透明以及文字重叠问题
当我们在窗口使用了非系统默认颜色或图片当背景时,上面的标签等控件实在是影响美观这个问题,只要设置标签的背景为透明就可以解决,代码如下:HBRUSH CTransparentCtlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ //控件背景透明处理开始 -----------------------------------原创 2013-03-22 14:12:51 · 7077 阅读 · 0 评论 -
设置列表控件(ListCtrl)各种颜色
源码下载:ListCtrlColor.Zip公开接口://设置奇数行背景颜色void SetOddItemBkColor(COLORREF color,BOOL bDraw);//设置偶数行背景颜色void SetEvenItemBkColor(COLORREF color,BOOL bDraw);//设置热点行背景颜色void SetHoverItemBkColor(COLOR原创 2013-01-07 17:16:37 · 16386 阅读 · 2 评论 -
迅雷X - 类似迅雷的悬浮窗口
技术含量:没有实现方法:UpdateLayeredWindow完整源码下载:XunleiX.zip// XunleiXDlg.cpp : 实现文件//#include "stdafx.h"#include "XunleiX.h"#include "XunleiXDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif//原创 2013-01-07 11:04:11 · 8692 阅读 · 6 评论 -
自绘实现半透明水晶按钮
运行效果实现方法1.给按钮加上BS_OWNERDRAW样式2.重载DrawItem函数,在这里绘制按钮3.关键之处就是把父窗口的背景复制到按钮上,实现视觉上的透明4.最后通过AlphaBlend实现半透明.实现源码// MyButton.h#pragma once// CMyButtonclass CMyButton : public CButton原创 2013-01-04 15:19:58 · 21802 阅读 · 12 评论 -
桌面动画-雪花和兔子-源码分享
圣诞和新年快到了,做了个桌面动画的窗口特效,搞搞气氛。效果是在桌面右下角有几只可爱的小兔子,有动画效果。满屏幕雪花飘落。雪花随机移动位置、尺寸、旋转角度。原创 2013-12-15 12:02:09 · 27272 阅读 · 44 评论 -
使用DWM实现Aero Glass效果
从Windows Vista开始,Aero Glass效果被应用在了Home Premium以上的系统中(Home Basic不具有该效果)。这种效果是由DWM(Desktop Window Manager)来控制的。对于一般的程序,缺省将在窗口边框应用这种效果。但如果我们想要更多的控制,比如让客户区的一部分也呈现这种效果,那也非常的简单。不需要我们在程序里做任何复杂的算法,我们只需要调API,交转载 2011-06-16 01:06:00 · 12087 阅读 · 11 评论 -
GDIPlus绘制桌面歌词
功能介绍采用GDIPlus绘制桌面歌词,类似酷狗、QQ音乐等软件。歌词支持纯色、两色渐变、三色渐变;支持高亮歌词。实现方法窗口部分:桌面歌词是个独立的背景透明窗口,可以移动位置,可以鼠标穿透.透明采用WS_EX_LAYERED、UpdateLayeredWindow。鼠标穿透可以加入WS_EX_TRANSPARENT样式。歌词部分:用Graphics::MeasureStr...原创 2014-07-07 14:09:26 · 14027 阅读 · 11 评论 -
禁止WebBrowser网页跳转时发出的声音
默认情况下,IE内核的网页浏览框(WebBrowser、CHtmlView、CHtmlDialog等控件)在跳转网页、点击按钮时会发出声音,用CoInternetSetFeatureEnabled这个API可以禁止掉。原创 2016-04-07 00:50:33 · 6646 阅读 · 2 评论 -
Windows路径操作API函数
PathRemoveArgs:去除路径的参数;PathRemoveBackslash:去除路径最后的反斜杠“\”;PathAddBackslash:在路径最后加上反斜杠“\”;PathRemoveBlanks:去除路径前后的空格;PathAddExtension:在文件路径后面加上扩展名;PathRemoveExtension:去除文件路径扩展名;PathRenameExtension:更改文件路径扩展名;PathRemoveFileSpec:去除文件名,得到目录;PathUnquoteSpaces:去除路转载 2015-09-16 19:07:48 · 5959 阅读 · 0 评论 -
遮罩窗口 - 给窗口增加半透明模糊遮罩
通过LayeredWindow、PrintWindow、AlphaBlend等方式创建一个半透明的遮罩窗口,支持模糊背景。原创 2016-10-31 20:37:30 · 10317 阅读 · 1 评论 -
绘制旋转七彩动画_VC源码_易语言源码
绘制旋转七彩动画,使用GDIPlus,FillPie方法,把各个色块当饼形图画出。包含VC源码、易语言源码。原创 2016-11-27 11:41:19 · 8008 阅读 · 0 评论 -
ANSI和UNICODE字符串处理函数
VC++中常用的字符串处理函数介绍,分ANSI和UNICODE版本原创 2015-09-16 19:13:40 · 10461 阅读 · 1 评论 -
VC版DoEvents/处理事件
VB下有一个DoEvents方法(易语言中叫"处理事件"),可以让程序在执行操作的同时仍可以处理其他事件,用这个方法可以有效地解决画面无法刷新的问题。MSDN说明: DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。 DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如原创 2012-12-10 15:46:35 · 8929 阅读 · 6 评论 -
MFC操作父窗口的子控件
//使用SetDlgItemTextCWnd* pDlg=GetParent();if(pDlg){ pDlg->SetDlgItemText(IDC_EDITADD,_T("测试edit"));}//使用GetDlgItemCWnd* pDlg=GetParent();if(pDlg){ CListBox* pListBox=(CListBox原创 2012-09-19 00:47:10 · 3044 阅读 · 0 评论 -
显示 256 色的位图
问题<br /> 显示位图似乎相当简单。在应用程序的资源中添加一张漂亮的位图,使用函数 LoadBitmap 将位图装 入内存,然后将位图选入设备描述表,再使用函数 BitBlt 便可显示出位图。但是这样显示的位图和目标环境或许有所不同。比如在256色的环境里,即使你载入的是256色位图,也会按屏幕颜色(一般为24位色)画出,那应该怎么按位图原来的颜色画出呢?方法<br /> 要显示位图,首先必须了解 Windows 中位图的概念。位图有两种基本格式:设备相关位图(DDB) 和设备无关位图(DIB)。在原创 2011-05-13 20:27:00 · 7566 阅读 · 0 评论 -
解决绘图时闪烁问题的一点经验
清除屏幕闪烁(转自网上)由于作图过于复杂和频繁,所以时常出现闪烁的情况,一些防止闪烁的方法,如下: (1)将Invalidate()替换为InvalidateRect()。Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。不要为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,事实上,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比起重画那些不需要重画的内容所需转载 2011-03-22 14:34:00 · 7994 阅读 · 2 评论 -
用MFC创建个性的对话框
本文涉及以下几个疑难问题: 1. 改正对话框的背景颜色 2. 用位图作为对话框的背景 3. 改变静态控件文字和背景颜色 4. 改变编辑框文字和背景颜色 5. 改变CheckBox的文字和背景颜色 6. 改变RadioBox的文字和背景颜色 7. 改变按钮的背景颜色和文字颜色 8. 在对话框中应用Picture控件 9. 改正Picture控件呈现的位图 10.应用LoadImage从资源装入位图想使自个的热门软件与众不同就要给热门软件加点“色”,一个颜色搭配协调的窗口要比windows千篇一律的灰底黑字更能转载 2011-03-17 03:24:00 · 6539 阅读 · 3 评论 -
VC之美化界面篇(转载)
关键词界面美化 摘要本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 正文1. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还记得它们的精美界面: 图1 瑞星杀毒软件的精美界面程序的功能如何如何强大是一回事,它的用户界面则是另一回事转载 2011-02-21 10:44:00 · 5845 阅读 · 6 评论 -
View和Control的区别(如何在对话框上使用CView类)
View和Control的区别(如何在对话框上使用CView类)CView继承类,和其他窗口类的区别,很重要的就是对CDocument类和CFrameWnd类的操作,而其中,涉及CDocument类的操作,都进行了有效性判断(m_pDocument != NULL),CView类初始化的时候,m_pDocument = NULL,因此并不影响CView类作为控件的使用.....原创 2010-12-22 15:22:00 · 3002 阅读 · 0 评论 -
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 · 4791 阅读 · 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 · 2720 阅读 · 0 评论 -
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 · 7130 阅读 · 3 评论 -
控制 WebBrowser 控件的外观和行为
<br />在 CSDN 上经常看到以下两个问题:<br />1、在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?<br />2、在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的滚动条禁止掉? <br />其实,这两个问题的解决办法是一样的。待老汉从头道来。 <br />从 Internet Explorer 4.0 开始,WebBrowser 控件转载 2011-03-29 00:38:00 · 4609 阅读 · 1 评论 -
在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
为了解决在主线程中Wait的问题,微软专门设计了一个函数MsgWaitForMultipleObjects,这个函数即可以等待信号(thread,event,mutex等等),也可以等待消息(MSG)。即不论有信号被激发或者有消息到来,此函数都可以返回。转载 2011-04-02 15:28:00 · 4217 阅读 · 5 评论 -
CListCtrl全选与反选
这里说的选择是指具有CheckBox风格的CListCtrl控件,选中CheckBox没有技术含量,只是刚才看见论坛里有位朋友在找,所以发到这里来,方便需要的朋友搜索. //以下代码中,CMyListCtrl继承自CListCtrl//全选CMyListCtrl::SelectAll(){ int nCount=GetItemCount(); for(i原创 2012-09-19 00:43:11 · 4891 阅读 · 1 评论 -
仿QQ右下角弹窗新闻_源码分享
源码名称:仿QQ右下角弹窗新闻源码作者:邓学彬(泪闯天涯)开发环境:Visual Studio 2005 源码说明:Win32(SDK)开发,自绘实现,支持多种皮肤风格.无需其他界面库. 美中不足之处是行距不能调整,GDI操作中,没发现现成的函数可以调整的,需要自己逐字计算才行了,所以这个就留给你们自己去完善了.// 设置皮肤(位图资源名称,标题栏文本颜色)原创 2012-08-11 12:03:53 · 21537 阅读 · 28 评论 -
让Webbrowser、CDHtmlDialog中的控件显示为系统主题样式
很多程序员可能都有这样的烦恼,开发基于IE内核的浏览器在WinXP以及Vista、Windows7等系统下浏览某些页面的时候缺没有系统主题的样式,按钮、文本框等还是Windows9x时代那种老的样式。在此笔者总结出几种方法解决,大家可以参考一下。方法1:在HTML文件里加上如下代码 此方法对于不是自己设计的网页不实用.方法2:LoadLibrary (“explorer.e原创 2012-02-25 17:23:39 · 4822 阅读 · 1 评论 -
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 · 4524 阅读 · 1 评论 -
VC 为程序创建快捷方式的详细讲解
有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径 HRESULT SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder,转载 2011-11-09 18:38:38 · 2640 阅读 · 0 评论 -
桌面图标弹出提示
之前看见过某些软件,安装完毕后会在桌面图标的旁边弹出一个提示框.然后就尝试着自己也实现一下这个效果.先来看看最终效果:实现方法首先,必须知道图标在屏幕上的位置.用SPY类工具探测了一下(这里我用的是彗星小助手),发现"桌面"是一个ListView控件,既然是这个控件,那就可以发送LVM_GETITEMTEXT消息来获取各个图标的名称,判断哪个是我们要找的.原创 2011-11-14 16:01:54 · 15407 阅读 · 27 评论 -
判断当前进程是否"以管理员身份运行"的
判断当前进程是否"以管理员身份运行"的,是否有管理员权限.成功返回真,失败返回假.仅在Vista、Windows7有效,更低版本的系统直接返回假.BOOL IsAdministrator() {//判断是否管理员模式 BOOL bIsElevated = FALSE; HA原创 2011-07-17 18:10:50 · 14103 阅读 · 4 评论 -
一个利用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 · 17960 阅读 · 7 评论 -
获得document的iframe时有两种方法
1.通过get_frames获得IHTMLFramesCollection2接口,然后再获得iframe的document了,但是这种方法如果iframe和外层页面跨域会遇到E_ACCESSDENIED的问题;2.通过EnumObjects( OLECONTF_EMBEDDINGS, &pEnumerator )的方式获得iframe的document,这种方法不存在跨域的问题;原创 2010-09-07 10:44:00 · 5126 阅读 · 2 评论