遍匈 / MFC縮殻 /

MFC鮫泡CBrush窃

鮫泡凪糞頁匯倖崧殆寄弌葎8*8議了夕?喘謹倖屢揖議了夕斤撃液夕侘議坪何序佩野割。

MFC議CBrush窃撃廾阻鮫泡斤嵆?幹秀鮫泡扮?遍枠協吶匯倖鮫泡斤嵆?隼朔距喘CreateSolidBrush、CreateHatchBrush賜CreatePatternBrush痕方。辛參寡喘和中眉嶽圭塀幹秀鮫泡。

1) 幹秀汽弼鮫泡
BOOL CreateSolidBrush(
 COLORREF crColor //鮫泡冲弼
);

2) 幹秀咐唹鮫泡
BOOL CreateHatchBrush(
 int nIndex, //咐唹鮫泡窃侏
 COLORREF crColor //鮫泡冲弼
);
歌方nIndex峺協鮫泡議劔塀。辛參譜崔議劔塀泌和侭幣?
  • HS_BDIAGONAL?燕幣45業?貧?貫恣崛嘔議咐唹(/////)?
  • HS_CROSS?邦峠才換岷住我咐唹(+++++)?
  • HS_DIAGCROSS?45業住我咐唹(XXXXX)?
  • HS_FDIAGONAL?45業?和?徭恣崛嘔咐唹(\\\\\\)?
  • HS_HORIZONTAL?邦峠咐唹(-----)?
  • HS_VERTICAL?換岷咐唹(|||||)。
  • crColor?峺協喘噐咐唹議泡徨議念尚弼。

3) 幹秀梓夕鮫泡
BOOL CreatePatternBrush(
 CBitmap* pBitmap //鮫泡了夕?峪聞喘恣貧叔議8*8寄弌
);

幣箭?聞喘GDI斤嵆CBrush紙夕幣箭

園亟匯倖殻會?膳楼匯和鮫泡議幹秀。貧中嗤伊嶽音揖欠鯉議鮫泡。

旗鷹亟壓念中仟秀議垢殻SDITest嶄?響宀辛參貫利嫋戻工議全俊嶄資函。堋響殻會頁萩歌深廣瞥。

1) 協吶方象潤更
//協吶方象潤更
struct my_EclipseBrush{
 //夕侘?塋焦瘕?
 CRect rect;
 //鮫永
 CBrush brush;
};

2) 協吶撹埀延楚
my_EclipseBrush m_myEclipseBrush[8];

3) 壓View窃嶄兜兵晒紙夕曝囃
//兜兵晒紙夕曝囃
void CSDITestView::InitRectBrush()
{
 //順中貧勣?塋?8倖夕侘?彈姥挫8倖曝囃?蛍曾佩?塋升c尋姉佻塋硝銚?
 //夕侘恣嘔寂侯10倖崧殆?貧和寂侯20倖崧殆
 //恣貧 嘔和
 CRect rect(0,0,100,100);
 for (int i=0;i<8;i++)
 {
 if (i<4)
 {
 //及匯佩夕侘
 CRect rect;
 rect.left=20+i*160;
 rect.top=280;
 rect.right=100+i*160;
 rect.bottom=380;
 m_myEclipseBrush[i].rect.CopyRect(rect);
 }
 else
 {
 //及屈佩夕侘
 CRect rect;
 rect.left=20+(i-4)*160;
 rect.top=400;
 rect.right=100+(i-4)*160;
 rect.bottom=500;
 m_myEclipseBrush[i].rect.CopyRect(rect);
 }
 }
}

4) 壓View窃嶄兜兵晒鮫泡
//兜兵晒鮫泡
void CSDITestView::InitBrush()
{
 //幹秀汽弼鮫泡
 m_myEclipseBrush[0].brush.CreateSolidBrush(RGB(255,0,0));
 //幹秀咐唹鮫泡
 m_myEclipseBrush[1].brush.CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0));
 m_myEclipseBrush[2].brush.CreateHatchBrush(HS_CROSS,RGB(0,0,255));
 m_myEclipseBrush[3].brush.CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,0));
 m_myEclipseBrush[4].brush.CreateHatchBrush(HS_FDIAGONAL,RGB(255,0,255));
 m_myEclipseBrush[5].brush.CreateHatchBrush(HS_HORIZONTAL,RGB(0,255,255));
 m_myEclipseBrush[6].brush.CreateHatchBrush(HS_VERTICAL,RGB(0,255,255));
 //幹秀叱採鮫永
 CBitmap bmp;
 //廣吭?宸戦勣枠紗墮匯倖了夕夕頭?圭隈念中厮将恂倖初府
 bmp.LoadBitmapW(IDB_BRUSH);
 m_myEclipseBrush[7].brush.CreatePatternBrush(&bmp);
}

5) 壓View窃嶄議OnDraw痕方嶄耶紗鮫夕旗鷹?旗鷹泌和?
CBrush* pOldBrush = NULL;
for (int i=0;i<8;++i)
{
 //委輝念議鮫永僉秘DC
 pOldBrush = cdc.SelectObject(&m_myEclipseBrush[i].brush);
 //壓峺協議曝囃紙崙蓉垈?曝囃葎屎圭侘?咀遇糞縞葎垈
 cdc.Ellipse(m_myEclipseBrush[i].rect);
 //珊圻DC
 cdc.SelectObject(pOldBrush);
}

6) 園咎旺塰佩殻會?伏撹潤惚泌夕4-3-1侭幣?

夕4-3-1喘音揖欠鯉音揖冲弼議鮫泡鮫夕丼惚夕

幣箭嶄處幣阻8嶽鮫永丼惚
  • 1催?汽弼鮫泡?喘CreateSolidBrush痕方幹秀?
  • 2催?HS_BDIAGONAL欠鯉?CreateHatchBrush痕方幹秀?
  • 3催?HS_CROSS欠鯉?CreateHatchBrush痕方幹秀?
  • 4催?HS_DIAGCROSS欠鯉?CreateHatchBrush痕方幹秀?
  • 5催?HS_FDIAGONAL欠鯉?CreateHatchBrush痕方幹秀?
  • 6催?HS_HORIZONTAL欠鯉?CreateHatchBrush痕方幹秀?
  • 7催?HS_VERTICAL欠鯉?CreateHatchBrush痕方幹秀?
  • 8催?叱採鮫泡?徭協吶了夕。

AltStyle によって変換されたページ (->オリジナル) /