WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Бэкграунд

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Бэкграунд
Alex_Y_M опубликован 28-10-2001 21:14 MSK   Click Here to See the Profile for Alex_Y_M   Click Here to Email Alex_Y_M  
Сорри за тупой вопрос.
Как изменить цвет фона в SDI при инициализации окна? Неужото онли через CREATESTRUCT и AfxRegisterClass?
Kosha опубликован 28-10-2001 23:21 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Цвет фона чего?
SUnteXx опубликован 28-10-2001 23:58 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
??????????????????????????
HOMO_PROGRAMMATIS опубликован 29-10-2001 08:03 MSK     Click Here to See the Profile for HOMO_PROGRAMMATIS  Click Here to Email HOMO_PROGRAMMATIS     
Цвет фона чего бы то ни было можно изменить через DC::SetBkColor( COLORREF crColor );
Alex_Y_M опубликован 29-10-2001 08:53 MSK     Click Here to See the Profile for Alex_Y_M  Click Here to Email Alex_Y_M     
А где его воткнуть лучше так , чтобы весь контекст перерисовался раз и навсегда? Я это делаю в OnDraw, только толку мало, появляются зеленые символы на черном фоне,как и должно быть, а остальное пространство как было белым так и остается. Может я че не так делаю? Объясните чайнику, плиз. В Win32 App насколько я помню цвет фона определяется в WNDCLASS , а вот аналог сего действия в MFC мне неизвестен.
Kostik опубликован 29-10-2001 09:37 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
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     Click Here to See the Profile for Alex_Y_M  Click Here to Email Alex_Y_M     
COLORREF m_crBkgrnd --> уже существует
COLORREF m_crText --> уже существует
HBRUSH m_hbr --> уже существует

Где существует? Чего-то я не догоняю... :(

Kosha опубликован 06-11-2001 12:11 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Это значит что ты почитал MSDN, ничего не понял, почитал еще раз, проникся его внутренней гармонией ;-), попил (для храбрости) пивка и создал по RTFMу эти COLORREFы и Brush'ы
Kostik опубликован 06-11-2001 05:43 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
У меня вошёл в привычку следующий ход событий.

Создаю структуру наподобие
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     Click Here to See the Profile for Alex_Y_M  Click Here to Email Alex_Y_M     
2 Kostik Фенькс :)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.