当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 本文介绍两种用GDI函数实
 

 

 ·vc6.0利用api实现串口通讯    »显示摘要«
    摘要: int init_comm(){ char port_name[10]; dcb dcb; bool status; dword error_number; status = ok; memset(port_name,0,sizeof(port_name)); memcpy(port_name,"com1",4); handle_com = createfile(port_n......
    摘要: #include "stdafx.h"#include "stdio.h"#include "string.h"#include "mstcpip.h"#include "winsock2.h"#pragma comment(lib,"ws2_32.lib")#define s......


VC中使用GDI函数实现位图的透明
本文介绍两种用gdi函数实现绘制位图时只绘制除指定颜色外的部分,达到“透明”的效果的方法:

1.          用bitblt实现位图上某种颜色的透明显示

【程序编程相关:ADO VC++ Extensions使

【推荐阅读:VC++对话框的任意扩展

2.          用maskblt实现位图上某种颜色的透明显示

【扩展信息:Using ADO from C++

 

为方便起见,用mfc方式讨论.先有如下的定义:

cdc                   *pdc;                // 目标dc,假设已create,位图已选入

cdc                   *pactivedc;     // 装载位图的dc.假设已create,位图已选入

cdc                   *pmaskdc;      // 装有掩码位图的dc

cbitmap           bmpmask;        // maskdc上使用的位图

colorref     crtrans;             // pactivedc上需要被透明处理的颜色

crect                 crclient;            // pdc的大小.假设已获得

 

这样,直观的说,本文讨论的目标就是,把pactivedc绘制到pdc上的时候,不绘制跟crtrans相同的颜色的部分.

1.          用bitblt api进行透明显示的步骤:


...   下一页
 ·^ & || >> << ~ 基础 (大家改正)    »显示摘要«
    摘要: a ^ b a|| b a & b a b 1 1 0 1 0 0 1 1 1 10 0 0 0 01 1 0 0 1101000001~101000001 结果 010111110正数符号位是0,负数符号位是1左移一位 可以等价 x2右移一位 可以等价 /2正数来说,最高位是0,其余各位代表数值本身的二进制数;      对于负数来说,把该数的绝对值的补码按位取反,然后对整个数+1,取......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE