Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Почему не раболтает |
Автор: Nastya 11.5.2002, 08:17 |
Люди, товарищи, человеки! Обясните почему не работает вот этот код hDC=GetDC(hWnd); SetTextColor(hDC,255); SetBkColor(hDC,0); ReleaseDC(hWnd,hDC); Ошибок компелятор не выдал Причем смена шрифта, пера и кисти тоже не сработала. Похоже я где-то сдорово проглючила Помещала кусок уже и в WM_PAINT и WM_SHOW и непосредственно перед рисованием и "показом окна" ничего. ![]() |
Автор: Alex101 11.5.2002, 13:51 | ||
hwnd чего? Скорее всего у этого окна системный шрифт... |
Автор: Sheff 11.5.2002, 14:19 |
Попробуй GetWindowDC |
Автор: suborg 12.5.2002, 20:20 |
а разве после release в dc не восстанавливаются параметры по умолчанию? стили линий, шрифты... по-моему когда заново GetDC делаешь, всё приходится по новой устанавливать |
Автор: Nastya 13.5.2002, 08:01 | ||||
Окна которое создает сама программа, основного окна программы.
Даже если вывод текста и установка атребутов проходит до release, но например при обработки сообщения WM_TIMER ничего не получаетс. Только в WM_PAINT причем если текст выводится в процедуре вызываемой из него тоже нечего не выходит. Возращается ошибка 87 - неправельные параметры. |
Автор: Nastya 13.5.2002, 08:04 |
GetWindowDc - тоже не срабатывает |
Автор: Grey 13.5.2002, 09:35 |
Возможно здесь с цветом проблема SetTextColor(hDC,255); Попробуй SetTextColor(hDC,RGB(0,0,255)); |
Автор: Fantasist 13.5.2002, 17:40 |
Проверь все-таки hWnd. Он у тебя точно тот, что нужен? А то иногда люди берут hWnd frame'a а не клиентскои области. Про ReleaseDC не уверен на месте ли он. |
Автор: Sheff 13.5.2002, 17:50 | ||
Вот этот код:
Вроде работает, проверял. |
Автор: fox 21.5.2002, 14:31 |
Не знаю что случилось, но я уже писал ответ на этот вопрос (куда он исчез![]() При получении сообщения WM_PAINT нужно вызывать функции BeginPaint и EndPaint а в MFC в OnPaint() CPaintDC dc(this); |