GDI++第三章

来源:互联网 发布:linux shell sed 编辑:程序博客网 时间:2024/05/20 19:18

LoadBitMap:函数的作用是从应用程序工程资源文件中加载位图。

LoadBitmap不能加载文件,只能加载资源,如果用文件的话改用LoadImage

LoadImage可以加载位图、图标、光标等多种图形数据。既可以从文件直接加载,也可以通过ID来加载。


//绘制位图的步骤:

            HDC hDCMem=::CreateCompatibleDC(hdc);
            HBITMAP hOldBmp=(HBITMAP)::SelectObject(hDCMem,hbmpBack);
            BITMAP Bitmap;
            ::GetObjectA(hbmpBack,sizeof(Bitmap),&Bitmap);
            ::BitBlt(hdc,0,0,Bitmap.bmWidth,Bitmap.bmHeight,hDCMem,0,0,SRCCOPY);
            ::SelectObject(hDCMem,hOldBmp);
            ::DeleteDC(hDCMem);

BitBlt 拷贝是将位图原样拷贝,不会拉伸源位图。拷贝到目标DC中不会改变源位图的大小,强制改变也不行。即会按位图的实际大小进行拷贝,不会进行其他的操作。

StretchBlt 拉伸拷贝,可以将位图拉伸拷贝到指定的区域。StretchBlt与BitBlt不同在于StretchBlt方法能够延伸或收缩位图以适应目标区域的大小

//获取客户区的大小:GetClientRect。

//设置背景模式:   SetBkMode设置DC的背景模式,Mode可以使TRANSPARENT(透明)和OPAQUE值(不透明)。

//库存字体:通过GetStockObject函数来获取。比如:GetStockObject(SYSTEM_FONT)获取默认的系统字体的句柄,在缺省情况下,系统使用该字体绘制菜单、文本。

DrawText和textout的参数不同的,textout是在一个起始点开始写文本,而DrawText是在某个区域里面写文本,精确定位用TextOut;格式对齐(居中,左对齐,右对齐等)用DrawText,此外DrawText还可以计算所绘字符串的面积大小,还可以以省略号代替超出区域的文本,区域是指参数RECT的大小。

原创粉丝点击