В настоящее время я пытаюсь создать графический интерфейс для некоторых программ, и у меня возникают проблемы с некоторыми статическими элементами управления.В моей процедуре Windows у меня есть сообщение WM_CTLCOLORSTATIC для того, когда должны быть нарисованы статические элементы управления.Внутри сообщения у меня есть оператор IF ELSE, в котором он сравнивает дескрипторы окна с тем, который нужно нарисовать, и выполняет функции окна соответственно.Один из них - это статический текстовый элемент управления, для которого задан цвет фона при рисовании, а другой - рисовать границы статического элемента управления.
case WM_CTLCOLORSTATIC:
{
if (hwnd = ANNwindow->settingsborder)
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (LRESULT)ANNwindow->backgroundbrush;
}
else if (hwnd = ANNwindow->settingstext)
{
DrawEdge((HDC)wParam, &ANNwindow->rect, EDGE_ETCHED, BF_BOTTOMRIGHT);
return (LRESULT)ANNwindow->backgroundbrush;
}
}
Параметры настройки и текст настроек - это дескрипторы окон в моем классе для создания графического интерфейса.
Если я переверну порядок операторов if else, он сделает только первый, независимо от того, в каком порядке.Если изменение цвета фона находится под IF, оно делает это.Если рисование границы находится под IF, то оно делает это, но никогда не то, что под остальной частью.Это простая ошибка в использовании языка C ++, так как я не могу найти проблему.Пожалуйста, помогите, спасибо.
PS Для части прорисовки я сначала создаю статическую контрольную границу, затем использую прорисовку на этом, должен ли я сделать это по-другому?Спасибо.