20-07-2007, 10:52
|
|
|
חבר מתאריך: 12.08.04
הודעות: 993
|
|
בס"ד
הפיתרון
קוד PHP:
bool GetStrPixels(HDC _memDc,CString str,std::vector<CPoint> &ret) { CDCHandle memDc(_memDc); CSize sizeStr; CBitmap bm; CBitmapHandle oldBm;
memDc.GetTextExtent(str,str.GetLength(),&sizeStr);
bm.CreateCompatibleBitmap(memDc,sizeStr.cx,sizeStr .cy); oldBm=memDc.SelectBitmap(bm);
memDc.FillRect(CRect(0,0,sizeStr.cx,sizeStr.cy),(H BRUSH)GetStockObject(WHITE_BRUSH)); memDc.TextOut(0,0,str);
//Ok.... lets go... ret.clear(); for (int iX=0;iX<sizeStr.cx;iX++) { for(int iY=0;iY<sizeStr.cy;iY++) { CPoint p(iX,iY); if(memDc.GetPixel(p)!=RGB(255,255,255)) //Non white... ret.push_back(p); } }
memDc.SelectBitmap(oldBm); return true; }
|