摘要: 从c方式创建窗体,创建默认消息处理:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); EndPaint(hWnd, &ps); break; case WM_ERASEBKGND: break; case WM_D... 阅读全文
posted @ 2012-01-13 13:06 asight 阅读(1251) 评论(0) 推荐(0) 编辑
摘要: 抽时间赶工完成的播放器,实现很简洁,功能简单。播放功能实现源码class MCIPlayer:#pragma once#include<mmsystem.h> #pragma comment(lib,"winmm.lib") #include <Digitalv.h>class MCIPlayer{public: MCIPlayer(); ~MCIPlayer(void); // 播放 void Play(LPCTSTR lpAudioFile, DWORD* pAudioLen = NULL); // 暂停 void Pause(); // 继续 阅读全文
posted @ 2012-01-05 12:38 asight 阅读(2071) 评论(4) 推荐(2) 编辑
摘要: 为了比较小的资源占用和比较快速的贴图速度,使用BitBlt自然是最佳方式,这是为数不多的软渲染GDI APIs里面有硬件加速的API之一,以前看到国外测试速度,不同的硬件下BitBlt比Graphics::DrawImage快100-1w倍,测试很简单就不说了,直接贴图100w张比执行时间。 为了使用BitBlt,需要HBITMAP数据,初始化CImage后调用CImage::Detach可以直接获得,该HBITMAP是DIBSECTION类型,各数据跟CImage一致,后面的Bitmap就出问题了。CImage::Loadinline HRESULT CImage::Load( LPC... 阅读全文
posted @ 2011-11-22 12:46 asight 阅读(4458) 评论(0) 推荐(0) 编辑
摘要: 初用WTL,发现搜不到Aero效果的WTL文章,那我就用WTL练一下手,我详细讲一下步骤。XXXDlg.h文件:(.cpp会编译报错,所以全部消息映射实现在.h)头文件:#include "dwmapi.h"#pragma comment(lib,"dwmapi.lib")1.添加Aero状态的成员private: BOOL m_bAeroEnabled;2.初始化窗体时判断Aero ::DwmIsCompositionEnabled(&m_bAeroEnabled); PostMessage(WM_DWMCOMPOSITIONCHANGED); 阅读全文
posted @ 2011-11-17 16:40 asight 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 声明时,初始化=操作,()操作都是调用拷贝构造函数,只有初始化完成后,=操作才是operator=,示例:Type a;Type b(a); // 拷贝构造函数Type a;Type b = a; // 拷贝构造函数Type a;Type b;b = a; // operator=(Type&)由于operator=和拷贝构造函数功能几乎一样,通常管理深拷贝成员,实现1个operator=就行class Type{ const Type& operator= (const Type& right) { if (this == &right) ... 阅读全文
posted @ 2011-11-03 17:22 asight 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 目前国内的非Aero玻璃窗体实现,效果最好的是酷狗7,我机子上QQ的玻璃效果比较差,有强反差的杂色,鄙视之。2年前还在找玻璃控件,感觉那些人真是太厉害了,下载还用不了,一直很遗憾,但现在看来那些东西也没什么。因为最开始是用vc#的,窗体消息和窗体绘制被掩盖了,所以接触不到底层原理,vc#也不适合做界面,控制力度太弱小了。今年敷衍了一下MFC基础就开始编码,毕竟有win api基础和c#基础用起MFC还是比较简单的。 SetLayeredWindowAttribute单窗体太简单了就不说了,有2个特性,全窗体透明度和透明色。UpdateLayeredWindow将当前窗体托管给系统,只提供... 阅读全文
posted @ 2011-10-20 09:31 asight 阅读(2876) 评论(1) 推荐(0) 编辑
摘要: 主要生成图片给MFC使用,截图:QQ的截图真不清晰...建议IE下载,枫树下载Dropbox的东西有点问题https://www.dropbox.com/s/go88lfhz3ydvwu4/ButtonImage.7z如果回复的人多的话,我会继续优化(∩_∩)有任何建议,请留言 阅读全文
posted @ 2011-04-18 22:53 asight 阅读(628) 评论(1) 推荐(1) 编辑
摘要: 因为MFC中CDC有GetTextExtent()可以获得字符串的高度宽度 像素单位,所以自然想到c#的GDI+的MeasureString,这个同样是测量字符串高度宽度,但是这个不同于CDC,他不适用CDC.GetTextExtent()的适用领域,GDI+MeasureString会自己处理矩形区域,返回这个矩形区域SizeF,这就是为什么是浮点而不是整数,它根本就不是字符串准确的高度宽度。 举个例子:给定字符串s,用Graphics的MeasureString获取高度宽度sizeF,并在一个给定的起点显示以sizeF为高度宽度的矩形大小和字符串sstring s = "an E 阅读全文
posted @ 2011-03-26 14:53 asight 阅读(5090) 评论(0) 推荐(3) 编辑
摘要: EncoderParameters encoderParams = new EncoderParameters(1); EncoderParameter param = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100); encoderParams.Param[0] = param; ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders()[1]; emptyBmp.Save("D:\\111.jpg", codec, encoderPa 阅读全文
posted @ 2011-03-23 13:10 asight 阅读(379) 评论(1) 推荐(0) 编辑
摘要: 一般的格式之间可以用 image.Save的方法转换格式 ,使用ImageFormat参数, 不过从一般格式转换到ico的话就不行了,使用ImageFormatIcon试了一下,结果是png.测试如下:结果是弹出 png.使用Icon icon = Icon.FromHandle(iconBm.GetHicon());网上都是这么说的,给出测试代码:[代码]我用jpg文件做测试,生成800x600... 阅读全文
posted @ 2010-10-11 19:35 asight 阅读(708) 评论(1) 推荐(0) 编辑