MFC Propertygrid контроля не рисует границы?

Я создал CMFCPropertyGridCtrl в своей форме, однако при установке для параметра «Граница» значения «True» в окне «Свойства» Visual Studio для этого элемента управления он не имеет эффектов, а сетка свойств всегда выглядит так, как на приведенном ниже снимке экрана (без граница нарисована вокруг контроля).

Я также попытался включить границу из моего кода, но безуспешно.

Какие у меня варианты? Это какая-то ошибка? Я подумал, возможно, вручную нарисовать прямоугольник вокруг элемента управления, чтобы имитировать границу в качестве крайней меры.

Безграничный контроль:
http://img818.imageshack.us/img818/6337/8j1l.png

Спасибо

0

Решение

Так что я нашел решение сам

В переопределенном методе OnPaint вашего диалогового окна добавьте следующий код:

    CMFCPropertyGridCtrl* pPropGrid = (CMFCPropertyGridCtrl*) GetDlgItem(IDC_PROPSYSCHECK);
CPaintDC dc(this);
CPen BluePen(PS_SOLID, 1, RGB(137, 140, 149));
CPen *OldPen = dc.SelectObject(&BluePen);
CRect rect;
pPropGrid->GetWindowRect(&rect);
ScreenToClient(&rect);
dc.Rectangle(&rect);
dc.SelectObject(BluePen);

CDialogEx::OnPaint();

Он рисует пользовательскую границу вокруг элемента управления.

0

Другие решения

Visaul Studio содержит ошибку: Редактор ресурсов не добавляет стиль границы в описание элемента управления в диалоговом ресурсе. Итак, добавьте этот стиль вручную и будьте удачливы 🙂

BOOL CMyDlg::OnInitDialog() {
CDialogEx::OnInitDialog();

// add WS_BORDER style manualy...
GetDlgItem(IDC_PROPSYSCHECK)->ModifyStyle(0, WS_BORDER);
return TRUE;
}
0