摘要:
动画窗体主要指的是创建或显示时以及隐藏窗体陪随的动画显示或隐藏效果; Window 提供了一个叫AnimateWindow这样的API, 这个效果就是使用这个函数实现的. 1. 函数声明 BOOL AnimateWindow(HWND hwnd, DWORD dwTime, DWORD dwFlags); hWnd: 需动画效果的窗体句柄(此窗体要同属于... 阅读全文
摘要:
本例将提炼了Demo0049显示控件中的方法,单独演示如何截取窗体的背景以及仅截取窗体的控件界面图; 一、代码演示 仅截取窗体中控件的效果图 SendMessage(hWnd, WM_PRINT, (WPARAM)hDCMem, PRF_CHILDREN|PRF_CLIENT|PRF_ERASEBKGND|PRF_NONCLIENT|PRF_OWNED); ... 阅读全文
摘要:
本节我们继续学习UpdateLayeredWindow这个API, 通过它我们来实现一个阴影效果的窗体(像Window7窗体效果). 思路: 1. 创建二个层窗体, 一个作为控件窗件,另一个做阴影效果窗体; 2. 在第一个窗体实现各种控件创建以及相关逻辑处理,此窗体设为全透明; 3. 将第二个窗体重叠并保持重叠第一个窗体(即大小,位置,移动或改变... 阅读全文
摘要:
本例我们学习另一个操作层窗体的函数, UpdateLayeredWindow 这个函数前几节中讲述的SetLayeredWindow功能更强大一些,它不仅可以显示实现SetLayeredWindow的Colorkey以及Alpha功能外还支持带有不同通道的图从而实现一些部分透明或阴影的功能, 这部分内容我们将会在后继章节中学习。 一. API 学习 BOOL UpdateLayeredWind... 阅读全文
摘要:
今晚用酷狗听歌时看到它的歌词效果做不不错, 真的很棒,所以想玩一玩模仿一下, 就开始分析如何实现,我分析步骤 1. 实现不被最小化的窗体 发现显示桌面时它不会最小化,我在桌面窗体中没有看到它的存在, 难到它不是一个窗体吗? 我用SPY++查看,它是一个窗体,但为何它不会被最小化呢,看到这窗体风格我想是不是只 要设置这些就可以了呢, 开始写程序试,果然是这样的,我才知道只要设... 阅读全文
摘要:
我们常常看到许多软件如QQ, 360, 金山词霸等都非常的漂亮,看不到我们通常看到的Window窗体和控件。 本节我们学习一下,当然技术上也是老话重谈,有点点技术就是双重缓冲的解决切换闪烁的问题. 一、关键代码 1. 载入一个背影到内存(确保窗体与背影大小一致) CREATESTRUCT cs = *(CREATESTRUCT*)lParam; hBmpBK = LoadBit... 阅读全文
摘要:
在上一节中我们学习了不规则窗体的实现, 本节我们通过另一个方式来实现用SetWindowRgn函数实现不了的功能,使用的方法我们在前期学过的SetLayeredWindowAtrribute函数通过 ColorKey参数的灵活使用. colorkey就是窗体中有颜色为color的值将其完成透明掉, 使用这个特性可以将我们不形状之外的部分填充成要ColorKey的颜色, 最后调用这个这个函数即可... 阅读全文
摘要:
我们常看到有许多不规则的窗体, 像Photoshop启动窗体以及一下破解软件也常是一些不规则窗体还有QQ,Windows 提供了不规则窗体的方法有多种, 我们先学习一下通过Rgn来实现。 实现方法: 1. 创建一个想要的状态区域(HRGN); 2. 使用SetWindowRgn函数将区域做为参数即可实现不规则窗体. 一、关键代码 RECT rtClient; GetClient... 阅读全文
摘要:
将一个窗体钉在桌面上, 在任务上不显示, 操作Window提供的显示桌面的功能也不会最小化, windows自带的便笺软件功能很好用,但有两个功能个人认人产品化做的很不好,第一、显示在任务栏(便笺的目的就是提示自己要做的事,所有应该一直挂在桌面上,而任务栏原本空间就有限,如果占用任务样影响了正常的工作), 其二、点击桌面时会被最小化, 被最小化了就失去了便笺) 为了实现以上不足我想这个软件应该是钉... 阅读全文
摘要:
通过读取Shell 中接口(IID_IShellDispatch), 使用此方式MinizeAll() 来最小化窗体, 并通过UndoMinizeAll()来恢复。 这个功能比起Window提供的[显示桌面]来, 功能还是有局限性的,此方法仅用于所有顶层窗体不存在模态对话框时才起作用。 一、关键代码块 IShellDispatch*pDispatch; CoInitializ... 阅读全文