צבע רקע של חלון בMFC

g u y c o h e n

New member
צבע רקע של חלון בMFC

איך משנים את צבע הרקע החלון ב OnPaint מלבן לצבע אחר ?
 

g u y c o h e n

New member
הקוד

void CMainFrame::OnPaint() { CPaintDC dc(this); CRect rect1; GetClientRect(&rect1); InitRects(); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { dc.Rectangle(m_Items[j].rect); dc.Draw3dRect(m_Items[j].rect, RGB(0, 255, 0), (255, 255 , 0)); } } }
 

g u y c o h e n

New member
חשבתי על הרעיון הבא:

CBrush brush1(RGB(0,255,0)); GetClientRect(&rect1); dc.FillRect(&rect1, &brush1);​
זה אמנם עובד אבל שאם אין דרך לקבוע את זה אחרת ?
 

IdanR

New member
אמ..

אין לי מושג לגבי MFC, אבל בעיקרון, פונקציית הAPI של יצירת חלון מקבלת גם HBRUSH שהוא צבע הרקע של החלון.
 

g u y c o h e n

New member
אתה צודק

אבל אני לא יודע איך לשנות את זה. ב MFC אני לא יוצר WNDCLASSEX. ובשיטה שלי זה עובד אבל יש לפעמים הבהובים לבנים
 

g u y c o h e n

New member
בעייה חדשה

עכשיו כשאני בחלון הצבוע אני שולח טקסט עם TextOut אבל צבע הרקע של הטקסט לבן ולא בצבע הרקע של החלון. כיצד ניתן לשנות את צבע הרקע של הטקסט ?
 

DNile

New member
להבא,

כשאתה מציג פה בעיה, רצוי גם לציין איך הצלחת לפתור, למען אחרים ילמדו ממך. במקרה הזה,יש לחלון פונקציה לקבוע את הצבע רקע של הטקסט(לא זוכר את השם המדויק של הפונקציה, נשמח אם תשתף אותנו).
 

g u y c o h e n

New member
צודק

הפונקצייה היא SetBkColor(COLORREF color) דוגמא:
dc->SetBkColor(RGB(0,0,255));​
תקבע את צבע הרקע לכחול
 
למעלה