问个关于HDC的问题。
在写程序中有个地方理解不透。HDC xiaoDC,DAODC[5],DAODC,DAOdc; //全局变量
int i; //全局变量
xiaoDC=GetDC(hwnd); //创建兼容DC
myhdc = CreateCompatibleDC(xiaoDC); //加载窗口显示内容。
for(i=0;i<5;i++)
DAODC[i]=CreateCompatibleDC(NULL); //创建5个与指定设备兼容的内存设备上下文环境
i=0; //初始化后面用。
DAODCCreateCompatibleDC(NULL);
DAOdc=CreateCompatibleDC(NULL);
ReleaseDC(hwnd,xiaoDC); //释放分配的资源
LRESULT CALLBACK zhaofeng(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam) //进入消息的各种处理中。
{
switch(uMsg)
{
case kaishi: //点击开始按钮
{
if(biaoji==1) //如果进入了指定的状态
{
DeleteDC(DAODC[i]); //清除前一个HDC。
i++; //启用下一个HDC;
DAODC=DAOdc;
}
biaoji=0; //清除进入指定的状态的标记
SetTimer(hwnd, 1, sudu, NULL); //启用定时器。
} break;
case TIMER:
{
if(biaoji==0)
{
经过N多过程后;
biaoji==1; //进入指定状态。
SetTimer(hwnd, 7, sudu-350, NULL); //又进入一个定时器
}
if(biaoji==1)
{
SelectObject(DAODC[i]DAODC,HUIDONG[tupian]); //加载图片到DAODC[i]
tupian++;
InvalidateRect(hwnd,NULL,FALSE);
}
} break;
case PAINT:
{
hdc = BeginPaint(hwnd,&ps);
TransparentBlt(hdc,baibeiX,baibeiY, donghua.bmWidth,donghua.bmHeight,
DAODC[i]DAODC,0,0,donghua.bmWidth,donghua.bmHeight,RGB(0,0,0));
} break;
如果只用蓝色的部分能达到我实现的效果,为什么把蓝色的部分都替换成红色的部分,就不能达到我要的效果呢?他们两个效果不一样吗?这是为什么,求解
[ 本帖最后由 小赵q1 于 2012-12-24 22:20 编辑 ]