Перерисовка элементов управления завершается с ошибкой, когда элемент управления Edit выдает предупреждение всплывающей C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Перерисовка элементов управления завершается с ошибкой, когда элемент управления Edit выдает предупреждение всплывающей

Сообщение Anonymous »

Я разрабатывал диалоговое окно MFC, используя элементы управления CXTPDialog, производные от CXTP. Я использовал CSliderCtrl и CXTPEdit.
Я установил некоторые определенные диапазоны для каждого параметра элемента управления редактированием. Всякий раз, когда значение превышено и появляется всплывающая подсказка с предупреждением, связанные с ней элементы управления (а также смежные элементы управления) имеют проблемы с отрисовкой, как показано ниже.
Пользовательский интерфейс элемента управления ползунком кажется сломанным, что находится рядом с элементом управления CEdit. (Появляется серая часть)
Изображение

Несколько элементов управления сталкиваются с проблемами рисования (отображается серая часть)
[img]https://i.sstatic.net /yrsB7kf0.png[/img]

Диалог, включающий эти элементы управления, загружается в родительский диалог с помощью Dialog.Create() и перемещается в свою текущую позицию. Это полный вид диалога с элементом управления
Изображение

OninitColor диалогового окна определяется, как показано ниже. SetupDialog — это диалог с элементами управления.

Код: Выделить всё

HBRUSH SetupDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{

HBRUSH hBrush = nullptr;

if (nCtlColor == CTLCOLOR_DLG)
{
hBrush = m_BrushWhite; // Use the white brush for the dialog background
}
else if (nCtlColor == CTLCOLOR_EDIT || nCtlColor == CTLCOLOR_LISTBOX)
{
hBrush = m_BrushEdit;
}
else
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(ThemeDefines()->clrDarkTextColor);

hBrush = m_BrushWhite;
}

return hBrush == nullptr ? CXTPDialog::OnCtlColor(pDC, pWnd, nCtlColor) : hBrush;
}
Часть DDX для исходного поля редактирования и ползунка:

Код: Выделить всё

void SetupDialog::DoDataExchange(CDataExchange* pDX)
{
CXTPDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_DR_SEED_COUNT_EDIT, m_editUMAPSeed);
DDX_Control(pDX, IDC_DR_SEED_SLIDER, m_sliderUMAPSeed);
DDX_Text(pDX, IDC_DR_SEED_COUNT_EDIT, m_nUMAPSeed);
DDV_MinMaxInt(pDX, m_nUMAPSeed, MIN_SEED, MAX_SEED);
}
Я вижу, что это может быть как-то связано с проблемой фокусировки, но я не могу точно сказать, как это исправить.
Нужно ли мне это делать? переопределить ondraw() или другие функции?
Я пытался поискать в Интернете подробности этой проблемы, но ничего хорошего не вышло.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -mfc-dialo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Перерисовка элементов управления завершается с ошибкой, когда элементы управления Edit выдают предупреждение Too Tip в д
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • LineCollection, перерисовка PatchCollection
    Гость » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Плагин Facebook Page — динамическая перерисовка/изменение ширины (адаптивный/RWD)
    Гость » » в форуме CSS
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость
  • Плагин Facebook Page — динамическая перерисовка/изменение ширины (адаптивный/RWD)
    Гость » » в форуме Javascript
    0 Ответы
    37 Просмотры
    Последнее сообщение Гость
  • Проблемы WinForms Invalidate(), перерисовка максимально быстрая
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»