###前提・実現したいこと
お世話になります。
MFCダイアログベースで、ペイントのような機能を作成しているのですが、
塗りつぶし機能を実装しようと思っています。
塗りつぶしの関数として、MFCのCDCクラスの関数ExtFloodFill()を使用し実装したのですが、
1点だけ実現できないことがあります。
矩形内で上下左右に囲まれている場合は塗りつぶし可能なのですが、矩形内の角では
塗りつぶしが外に溢れてしまいます。(MSのペイントでは一番端が枠とみなされているようです)
矩形内の角の塗りつぶしにおいて、ExtFloodFill()では実現できないでしょうか。
また他の手段で実現できる方法があればご教授お願いいたします。
###該当のソースコード
void FloodFillPicture(CDC* pDC, CRect* pRct, CPoint Pnt) { CBrush hbrs; hbrs.CreateSolidBrush(RGB(0,0,0)); pDC->SelectObject(hbrs); COLORREF clFill; clFill = pDC->GetPixel(Pnt); pDC->ExtFloodFill(m_sPnt.x, m_sPnt.y, clFill, FLOODFILLSURFACE); if (HBRUSH(hbrs) != NULL) hbrs.DeleteObject(); }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/17 05:32