Автор
|
Тема: Бэкграунд
|
Alex_Y_M |
опубликован 28-10-2001 21:14 MSK
Сорри за тупой вопрос. Как изменить цвет фона в SDI при инициализации окна? Неужото онли через CREATESTRUCT и AfxRegisterClass?
|
Kosha
|
опубликован 28-10-2001 23:21 MSK
Цвет фона чего? |
SUnteXx
|
опубликован 28-10-2001 23:58 MSK
?????????????????????????? |
HOMO_PROGRAMMATIS
|
опубликован 29-10-2001 08:03 MSK
Цвет фона чего бы то ни было можно изменить через DC::SetBkColor( COLORREF crColor );
|
Alex_Y_M
|
опубликован 29-10-2001 08:53 MSK
А где его воткнуть лучше так , чтобы весь контекст перерисовался раз и навсегда? Я это делаю в OnDraw, только толку мало, появляются зеленые символы на черном фоне,как и должно быть, а остальное пространство как было белым так и остается. Может я че не так делаю? Объясните чайнику, плиз. В Win32 App насколько я помню цвет фона определяется в WNDCLASS , а вот аналог сего действия в MFC мне неизвестен. |
Kostik
|
опубликован 29-10-2001 09:37 MSK
COLORREF m_crBkgrnd --> уже существует COLORREF m_crText --> уже существует HBRUSH m_hbr --> уже существует m_crText = RGB(255, 0, 0) // Где-нить в OnInitialUpdate m_crBkgrnd = RGB(100, 100, 100) // Где-нить в OnInitialUpdate m_hbr = CreateSolidBrush(m_crBkgrnd); // Где-нить в OnInitialUpdate// Красит фон всего FormView цветом m_crBkgrnd BOOL CMyFormView::OnEraseBkgnd(CDC* pDC) { CRect rect; GetClientRect(&rect); pDC->FillSolidRect(&rect, m_crBkgrnd); return TRUE; } // Красит Детей . В данном случае статики HBRUSH CMyFormView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STATIC) { pDC->SetTextColor(m_crText); pDC->SetBkMode(TRANSPARENT); pDC->SetBkColor(m_crBkgrnd); hbr = m_hbr; } return hbr; } Получится серый фон и красный шрифт статиков |
Alex_Y_M
|
опубликован 05-11-2001 16:15 MSK
COLORREF m_crBkgrnd --> уже существует COLORREF m_crText --> уже существует HBRUSH m_hbr --> уже существуетГде существует? Чего-то я не догоняю... :( |
Kosha
|
опубликован 06-11-2001 12:11 MSK
Это значит что ты почитал MSDN, ничего не понял, почитал еще раз, проникся его внутренней гармонией ;-), попил (для храбрости) пивка и создал по RTFMу эти COLORREFы и Brush'ы |
Kostik
|
опубликован 06-11-2001 05:43 MSK
У меня вошёл в привычку следующий ход событий.Создаю структуру наподобие struct SAppOptions { COLORREF m_crBkgrnd; // Цвет фона COLORREF m_crFigure; // Цвет Цифр DWORD m_dwTime; .... }; typedef struct SAppOptions APPMETRICS, *LPAPPMETRICS; LPAPPMETRICS ->> m_lpAppOption; При загрузке проги в CMyApp::InitInstance() вызываю фу-ю, в которой и заполняю структуру данными из реестра. (если их не было, заполняю по умолчанию). Дальше В MyFormView.h COLORREF m_crBkgrnd COLORREF m_crText В MyFormView.cpp Где-нить в OnInitialUpdate m_crBkgrnd = m_lpAppOption->m_crBkgrnd; ..... В процессе работы могу изменять фон (да всё что угодно) и запоминать его в APPMETRICS. При выходе из проги в CMyApp::ExitInstance() опять вызываю ф-ю, чтобы сохранить значения APPMETRICS в реестре.
|
Alex_Y_M
|
опубликован 09-11-2001 19:33 MSK
2 Kostik Фенькс :) |