VC程序设计
robertcarlos
来吧
展开
-
绘制CBitmap的方法
如果是在重绘函数如OnPaint中CDC memDC;memDC.CreateCompatibleDC(pDC);CBitmap* pOldBmp = memDC.SelectObject(&bmp);pDC->BitBlt(rt.left, rt.top, rt.Width(), rt.Height(), &memDC, 0, 0, SRCCOPY);memDC.Sele原创 2009-03-07 12:34:00 · 1047 阅读 · 0 评论 -
窗口绘制小结
创建一个窗口,这个窗口区域就相当于一块画布,最终系统要在这块画布上绘制出窗口标题,客户区,控件等等,而窗口和控件绘制时的GetDC,BeginPaint等不过是获取到了跟自己相关的这块画布的一部分,在限定的区域内绘制,最终是画到这块画布上,系统最后显示窗口就是在桌面上显示这块画布,透明度也是认这块画布,因此上面的子窗口及控件也一起变得透明了。另建一个弹出式窗口,相当于创建了另一原创 2010-04-08 12:22:00 · 396 阅读 · 0 评论 -
OnPaint和OnEraseBkgnd的区别
在MFC中 任何一个window组件的绘图 都是放在这两个member function中 在设定上 OnEraseBkgnd()是用来画底图的 而OnPaint()是用来画主要对象的 举例说明 一个按钮是灰色的 上面还有文字 则OnEraseBkgnd()所做的事就是把按钮画成灰色 而OnPaint()所做的事 就是画上文字 既然这两原创 2010-04-08 12:25:00 · 589 阅读 · 0 评论 -
MFC应用程序创建窗口的过程
1.PreCreateWindow() 该函数是一个重载函数,在窗口被创建前,可以在该重载函数中改变创建参数(可以设置窗口风格等等)2.PreSubclassWindow() 这也是一个重载函数,允许首先子分类一个窗口3.OnGetMinMaxInfo() 该函数为消息响应函数,响应的是WM_GETMINMAXINFO消息,允许设置窗口的最大或者最小尺寸4.OnNcCr原创 2010-04-08 12:25:00 · 461 阅读 · 0 评论 -
InvalidateRect说明
InvalidateRect是将窗口中的一块矩形区域标注为“无效”,系统会不断向窗口发送WM_PAINT消息令其重绘。在响应WM_PAINT消息时,需要调用BeginPaint获取DC来进行重绘。该函数会合并所有“无效”区域,对DC进行裁剪,将整个窗口标注为“有效”,清除WM_PAINT消息。DC经裁剪之后,在进行绘制时,超出DC范围的操作将不被处理,所以即使在响应W原创 2010-04-08 12:23:00 · 567 阅读 · 0 评论 -
双缓冲的说明
双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板。首先我们在内存环境中建立一个“虚拟“的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制好的图形“拷贝”到另一块黑板(屏幕)上。采取这种方法可以提高绘图速度,极大的改善绘图效果。能理解到这一层,工作便变得简单了,只要四步就可以搞定了,看下面代码:例如在OnDraw()函数中可以如下所述原创 2010-04-08 12:26:00 · 423 阅读 · 0 评论 -
几个非常有用的文件操作
创建4K大小的空文件void CreateEmptyFile(){ char end=EOF; FILE *fp=fopen("empty.out", "wb"); fseek(fp, 4095, SEEK_SET); /*将文件位置指针移动到文件末尾,-1是为了给后面要写入的“结束标志”留空间*/ fwrite(&end, 1, 1, fp);原创 2011-06-12 11:02:00 · 422 阅读 · 0 评论 -
c++中对于json的key不带双引号的问题修复
在引用了第三方数据时,数据源通过转义,将json的key原创 2014-10-10 14:03:11 · 1603 阅读 · 0 评论 -
shared_ptr的模版推导问题
问题描述问题原因分析解决方案原创 2014-11-04 10:50:42 · 664 阅读 · 0 评论