⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfutils.cpp

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 CPP
📖 第 1 页 / 共 3 页
字号:
wxXMetaFile::~wxXMetaFile(void){  wxObjectList::compatibility_iterator node = metaRecords.GetFirst();  while (node)  {    wxMetaRecord *rec = (wxMetaRecord *)node->GetData();    delete rec;    wxObjectList::compatibility_iterator next = node->GetNext();    metaRecords.Erase(node);    node = next;  }}bool wxXMetaFile::SetClipboard(int WXUNUSED(width), int WXUNUSED(height)){  return false;}bool wxXMetaFile::Play(wxDC *dc){  wxObjectList::compatibility_iterator node = metaRecords.GetFirst();  while (node)  {    wxMetaRecord *rec = (wxMetaRecord *)node->GetData();    int rdFunction = rec->metaFunction;    switch (rdFunction)    {      case META_SETBKCOLOR:      {        break;      }      case META_SETBKMODE:      {        break;      }      case META_SETMAPMODE:      {        break;      }//      case META_SETROP2://      case META_SETRELABS://      case META_SETPOLYFILLMODE://      case META_SETSTRETCHBLTMODE://      case META_SETTEXTCHAREXTRA:      case META_SETTEXTCOLOR:      {        break;      }//      case META_SETTEXTJUSTIFICATION:      case META_SETWINDOWORG:      {        break;      }      case META_SETWINDOWEXT:      {        break;      }//      case META_SETVIEWPORTORG://      case META_SETVIEWPORTEXT://      case META_OFFSETWINDOWORG://      case META_SCALEWINDOWEXT://      case META_OFFSETVIEWPORTORG://      case META_SCALEVIEWPORTEXT:      case META_LINETO:      {        long x1 = rec->param1;        long y1 = rec->param2;        dc->DrawLine((long) lastX, (long) lastY, x1, y1);        break;      }      case META_MOVETO:      {        lastX = (double)rec->param1;        lastY = (double)rec->param2;        break;      }      case META_EXCLUDECLIPRECT:      {        break;      }      case META_INTERSECTCLIPRECT:      {        break;      }//      case META_ARC: // DO!!!      case META_ELLIPSE:      {        break;      }//      case META_FLOODFILL://      case META_PIE: // DO!!!      case META_RECTANGLE:      {        dc->DrawRectangle((long)rec->param1, (long)rec->param2,                          (long)rec->param3 - rec->param1,                          (long)rec->param4 - rec->param2);        break;      }      case META_ROUNDRECT:      {        dc->DrawRoundedRectangle((long)rec->param1, (long)rec->param2,                          (long)rec->param3 - rec->param1,                          (long)rec->param4 - rec->param2,                          (long)rec->param5);        break;      }//      case META_PATBLT://      case META_SAVEDC:      case META_SETPIXEL:      {//        rec->param1 = getshort(handle); // x1//        rec->param2 = getshort(handle); // y1//        rec->param3 = getint(handle);   // COLORREF        break;      }//      case META_OFFSETCLIPRGN:      case META_TEXTOUT:      {/*        int count = getshort(handle);        rec->stringParam = new char[count+1];        fread((void *)rec->stringParam, sizeof(char), count, handle);        rec->stringParam[count] = 0;        rec->param2 = getshort(handle); // Y        rec->param1 = getshort(handle); // X*/        break;      }//      case META_BITBLT://      case META_STRETCHBLT:      case META_POLYGON:      {/*        rec->param1 = getshort(handle);        rec->points = new wxRealPoint[(int)rec->param1];        for (int i = 0; i < rec->param1; i++)        {          rec->points[i].x = getshort(handle);          rec->points[i].y = getshort(handle);        }*/        break;      }      case META_POLYLINE:      {/*        wxMetaRecord *rec = new wxMetaRecord(META_POLYLINE);        rec->param1 = (long)getshort(handle);        rec->points = new wxRealPoint[(int)rec->param1];        for (int i = 0; i < rec->param1; i++)        {          rec->points[i].x = getshort(handle);          rec->points[i].y = getshort(handle);        }*/        break;      }//      case META_ESCAPE://      case META_RESTOREDC://      case META_FILLREGION://      case META_FRAMEREGION://      case META_INVERTREGION://      case META_PAINTREGION://      case META_SELECTCLIPREGION: // DO THIS!      case META_SELECTOBJECT:      {/*        wxMetaRecord *rec = new wxMetaRecord(META_SELECTOBJECT);        rec->param1 = (long)getshort(handle); // Position of object in gdiObjects list*/        break;      }//      case META_SETTEXTALIGN://      case META_DRAWTEXT://      case META_CHORD://      case META_SETMAPPERFLAGS://      case META_EXTTEXTOUT://      case META_SETDIBTODEV://      case META_SELECTPALETTE://      case META_REALIZEPALETTE://      case META_ANIMATEPALETTE://      case META_SETPALENTRIES://      case META_POLYPOLYGON://      case META_RESIZEPALETTE://      case META_DIBBITBLT://      case META_DIBSTRETCHBLT:      case META_DIBCREATEPATTERNBRUSH:      {/*        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }//      case META_STRETCHDIB://      case META_EXTFLOODFILL://      case META_RESETDC://      case META_STARTDOC://      case META_STARTPAGE://      case META_ENDPAGE://      case META_ABORTDOC://      case META_ENDDOC://      case META_DELETEOBJECT: // DO!!      case META_CREATEPALETTE:      {/*        wxMetaRecord *rec = new wxMetaRecord(META_CREATEPALETTE);        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }      case META_CREATEBRUSH:      {/*        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }      case META_CREATEPATTERNBRUSH:      {/*        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }      case META_CREATEPENINDIRECT:      {/*        int msStyle = getshort(handle); // Style: 2 bytes        int x = getshort(handle); // X:     2 bytes        int y = getshort(handle); // Y:     2 bytes        int colorref = getint(handle); // COLORREF 4 bytes        int style;        if (msStyle == PS_DOT)          style = wxDOT;        else if (msStyle == PS_DASH)          style = wxSHORT_DASH;        else if (msStyle == PS_NULL)          style = wxTRANSPARENT;        else style = wxSOLID;        wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref));        rec->param1 = (long)wxThePenList->FindOrCreatePen(&colour, x, style);*/        break;      }      case META_CREATEFONTINDIRECT:      {/*        int lfHeight = getshort(handle);        int lfWidth = getshort(handle);        int lfEsc = getshort(handle);        int lfOrient = getshort(handle);        int lfWeight = getshort(handle);        char lfItalic = getc(handle);        char lfUnderline = getc(handle);        char lfStrikeout = getc(handle);        char lfCharSet = getc(handle);        char lfOutPrecision = getc(handle);        char lfClipPrecision = getc(handle);        char lfQuality = getc(handle);        char lfPitchAndFamily = getc(handle);        char lfFacename[32];        fread((void *)lfFacename, sizeof(char), 32, handle);        int family;        if (lfPitchAndFamily & FF_MODERN)          family = wxMODERN;        else if (lfPitchAndFamily & FF_MODERN)          family = wxMODERN;        else if (lfPitchAndFamily & FF_ROMAN)          family = wxROMAN;        else if (lfPitchAndFamily & FF_SWISS)          family = wxSWISS;        else if (lfPitchAndFamily & FF_DECORATIVE)          family = wxDECORATIVE;        else          family = wxDEFAULT;        int weight;        if (lfWeight == 300)          weight = wxLIGHT;        else if (lfWeight == 400)          weight = wxNORMAL;        else if (lfWeight == 900)          weight = wxBOLD;        else weight = wxNORMAL;        int style;        if ((bool)lfItalic)          style = wxITALIC;        else          style = wxNORMAL;        // About how many pixels per inch???        int logPixelsY = 100;        int pointSize = (int)(lfHeight*72.0/logPixelsY);        wxFont *theFont =          wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, (bool)lfUnderline);        rec->param1 = (long)theFont;*/        break;      }      case META_CREATEBRUSHINDIRECT:      {/*        int msStyle = getshort(handle); // Style: 2 bytes        int colorref = getint(handle);   // COLORREF: 4 bytes        int hatchStyle = getshort(handle); // Hatch style 2 bytes        int style;        if (msStyle == PS_DOT)          style = wxDOT;        else if (msStyle == PS_DASH)          style = wxSHORT_DASH;        else if (msStyle == PS_NULL)          style = wxTRANSPARENT;        else style = wxSOLID;        wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref));        rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(&colour, wxSOLID);*/        break;      }      case META_CREATEBITMAPINDIRECT:      {/*        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }      case META_CREATEBITMAP:      {/*        fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);*/        break;      }      case META_CREATEREGION:      {        dc->DestroyClippingRegion();/*        rec->param1 = getshort(handle); // Style: 2 bytes*/        break;      }      default:      {        break;      }    }    node = node->GetNext();  }  return true;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -