惨遇winform写入mysql数据库乱码问题,第一次写程序,大家快来帮忙看看啊
解决方案 »
- ADO.NET的连接数据库的configure文件只能命名为app.config吗?
- C#聊天问题
- 请推荐.Net下比较好的更新日志工具?
- DataGridView的动态更新问题!
- C#读写文件高人速救
- 高手请进,怎样通过程序来删除word下面的所有的分节符?
- Vista下使用VS2008编译.EXE的C#程序 出现错误"无法加载 DLL“api_clnt.dll”: 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志。 (异常来自 HRESULT:0x800736B1)"。
- XmlSerial序列化的问题
- Remoting的异常
- C#-winform程序为何在windows2000和xp下窗口的大小不同?
- foreach循环的问题。。。。。。。
- WPF 通过文件路径 获得文件图标 然后在一个image里显示 图片失真问题
/******************************************************************************
* 绘图函数, 支持水平翻转和垂直翻转
* rop : (BM_TRANSPARENT 或者 BM_COPY ) | (FLIP_HORI 或者 FLIP_VERT)
* transcolor : 透明色 (16bit)
*****************************************************************************/int32 mmrc_bitmapShowFlip(uint16* p, int16 x, int16 y, uint16 mw, uint16 w, uint16 h, uint16 rop,
int16 sx, int16 sy, uint16 transcolor)
{
uint16 *dstp,*srcp;
int MaxY, MaxX;
int MinY = MAX(0, y);
int MinX = MAX(0, x);
uint16 dx,dy;
uint16 BitmapRop, BitmapFlip;
uint16 * screenBuf;
mr_screeninfo screeninfo;
int32 scrWidth, scrHeight; //mrc_printf("mrc_bitmapShowFlip v1003 by Nevo 090603!");
if(NULL == p)
return MR_FAILED; //mrc_getScreenSize(&scrWidth, &scrHeight);
mrc_getScreenInfo(&screeninfo);
scrWidth = screeninfo.width;
scrHeight = screeninfo.height;
MaxY = MIN(scrHeight, y+h);
MaxX = MIN(scrWidth, x+w);
screenBuf = (uint16 *)w_getScreenBuffer();
BitmapRop = rop & 0xff;
BitmapFlip = rop&0xff00; switch (BitmapRop)
{
case BM_TRANSPARENT:
{
switch(BitmapFlip)
{
case MTRANS_MIRROR_ROT180:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h - 1 - (dy - y - sy)) * mw + (MinX - x + sx);
for (dx = MinX; dx < MaxX; dx++)
{
if (*srcp != transcolor)
*dstp = *srcp;
dstp++;
srcp++;
}
}
break;
case MTRANS_MIRROR:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (dy - y+sy) * mw + sx;
for (dx = MinX; dx < MaxX; dx++)
{
if (*(srcp + w - (dx-x)-1) != transcolor)
*dstp = *(srcp + w - (dx-x)-1);
dstp++;
}
}
break;
case MTRANS_ROT90:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h+sy-1)*mw +(dy-y)+sx;
for (dx = MinX; dx < MaxX; dx++)
{
if(*(srcp-(dx-x)*mw)!= transcolor)
*dstp = *(srcp-(dx-x)*mw); dstp++;
}
}
break;
case MTRANS_ROT180:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h-1+sy)*mw +w-(dy-y)*mw-1+sx; for (dx = MinX; dx < MaxX; dx++)
{
if(*(srcp-(dx-x)) != transcolor)
*dstp = *(srcp-(dx-x)); dstp++;
}
}
break;
case MTRANS_ROT270:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX); srcp = p +sx+sy * mw + w-(dy-y)-1; for (dx = MinX; dx < MaxX; dx++)
{
if(*(srcp+(dx-x)*mw) != transcolor)
*dstp = *(srcp+(dx-x)*mw); dstp++;
}
}
break;
case MTRANS_MIRROR_ROT90:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX); srcp = p + sx +(h+sy-1)*mw+w-dy+y-1; for (dx = MinX; dx < MaxX; dx++)
{
if(*(srcp-(dx-x)*mw) != transcolor)
*dstp = *(srcp-(dx-x)*mw); dstp++;
}
}
break;
case MTRANS_MIRROR_ROT270:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p+(sy)*mw-y+sx+dy; for (dx = MinX; dx < MaxX; dx++)
{
if(*(srcp+(dx-x)*mw) != transcolor)
*dstp = *(srcp+(dx-x)*mw); dstp++;
}
}
break;
default:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (dy - y+sy) * mw + (MinX - x + sx);
for (dx = MinX; dx < MaxX; dx++)
{
if (*srcp != transcolor)
*dstp = *srcp;
dstp++;
srcp++;
}
}
break;
}
}
break;
case BM_COPY:
default:
switch(BitmapFlip)
{
case MTRANS_MIRROR_ROT180:
if (MaxX > MinX)
{
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h - 1 - (dy - y - sy)) * mw + (MinX - x + sx); memcpy(dstp, srcp, (MaxX - MinX)<<1);
}
}
break;
case MTRANS_MIRROR:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (dy - y + sy) * mw + sx;
for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp + w - (dx-x)-1);
dstp++;
}
}
break;
case MTRANS_ROT90:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h+sy-1)*mw +(dy-y)+sx;
for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp-(dx-x)*mw);
dstp++;
}
}
break;
case MTRANS_ROT180:
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (h-1+sy)*mw +w-(dy-y)*mw-1+sx; for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp-(dx-x));
dstp++;
}
}
break;
case MTRANS_ROT270:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX); srcp = p +sx+sy * mw + w-(dy-y)-1; for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp+(dx-x)*mw);
dstp++;
}
}
break;
case MTRANS_MIRROR_ROT90:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX); srcp = p + sx +(h+sy-1)*mw+w-dy+y-1; for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp-(dx-x)*mw);
dstp++;
}
}
break;
case MTRANS_MIRROR_ROT270:
if(w != h)
{
MaxY = MIN(scrHeight, y+w);
MaxX = MIN(scrWidth, x+h);
} for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p+(sy)*mw-y+sx+dy; for (dx = MinX; dx < MaxX; dx++)
{
*dstp = *(srcp+(dx-x)*mw);
dstp++;
}
}
break;
default:
if (MaxX > MinX)
{
for (dy=MinY; dy < MaxY; dy++)
{
dstp = (uint16 *)(screenBuf + dy * scrWidth + MinX);
srcp = p + (dy - y + sy) * mw + (MinX - x + sx);
memcpy(dstp, srcp, (MaxX - MinX)<<1);
}
}
break;
}
break;
}
return MR_SUCCESS;
}