?? gdi.c
字號:
#include "Gdi.h"
#include "Server.h"
#include <windows.h>
// 添加一個元素到GDI鏈表
struct GdiList *Add_Gdi(struct GdiList *pNode,struct GdiDS Gdi)
{
// 添加到鏈表的末尾
if (pNode->pNext = (struct GdiList *)malloc(sizeof(struct GdiList)))
{
pNode = pNode->pNext;
// 添加網格坐標
pNode->Gdi.iGridX = Gdi.iGridX;
pNode->Gdi.iGridY = Gdi.iGridY;
// 設置區域的矩形坐標
pNode->Gdi.iWidth1 = Gdi.iWidth1;
pNode->Gdi.iWidth2 = Gdi.iWidth2;
pNode->Gdi.iHeight1 = Gdi.iHeight1;
pNode->Gdi.iHeight2 = Gdi.iHeight2;
// 設置DIB顏色表的顏色數
pNode->Gdi.nColors = Gdi.nColors;
// 設置DIB信息頭的字節數
pNode->Gdi.dwBitMapHeader = Gdi.dwBitMapHeader;
// 設置位圖長度和起始坐標
pNode->Gdi.dwLen = Gdi.dwLen;
pNode->Gdi.dwCompress = Gdi.dwCompress;
pNode->Gdi.iStartPos = Gdi.iStartPos;
//設置DIB
pNode->Gdi.DIBitmap = Gdi.DIBitmap;
// 設置DIB信息頭
pNode->Gdi.BMIH = Gdi.BMIH;
// 設置DIB信息頭的指針
pNode->Gdi.lpBMIH = Gdi.lpBMIH;
// 設置區域的裝置設備句柄
pNode->Gdi.hMemDC = Gdi.hMemDC;
// 設置區域的位圖句柄
pNode->Gdi.hDIBitmap = Gdi.hDIBitmap;
// 區域無壓縮DIB的指針
pNode->Gdi.pDIB = Gdi.pDIB;
//設置指向區域DIB變化的部分的指針
pNode->Gdi.pDIBChange = Gdi.pDIBChange;
//設置指向壓縮區域的DIB的指針
pNode->Gdi.pDIBCompress = Gdi.pDIBCompress;
//設置指向全局區域位圖指針
pNode->Gdi.pDIBitmap = Gdi.pDIBitmap;
// 區域位圖標志
pNode->Gdi.fDIBitmap = Gdi.fDIBitmap;
pNode->Gdi.fChange = Gdi.fChange;
pNode->pNext = NULL;
return pNode;
}
return NULL;
}
// 完全清楚GDI鏈表
void Clear_Gdi(struct GdiList *pStart)
{
struct GdiList *pPrev;
struct GdiList *pNode;
while (pNode = pStart->pNext)
{
pPrev = pStart;
pPrev->pNext = pNode->pNext;
DeleteDC(pNode->Gdi.hMemDC);
DeleteObject(pNode->Gdi.hDIBitmap);
if (pNode->Gdi.fDIBitmap)
{
free(pNode->Gdi.pDIBitmap);
free(pNode->Gdi.pDIB);
free(pNode->Gdi.pDIBChangeStart);
}
free(pNode);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -