0

我在我的表单上创建了一个 CMFCPropertyGridCtrl,但是当在 Visual Studio 的“属性”窗口中为该控件将“边框”选项设置为“真”时,它没有任何效果,并且属性网格总是看起来像在下面的屏幕截图中一样(没有围绕控件绘制的边框)。

我还尝试从我的代码中启用边框,但没有运气。

我有哪些选择?这是某种错误吗?我在想也许可以手动在控件周围绘制一个矩形来模拟边框作为最后的手段。

无边框控件:http: //img818.imageshack.us/img818/6337/8j1l.png

谢谢

4

2 回答 2

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();

它在控件周围绘制自定义边框。

于 2013-09-03T08:39:15.207 回答
0

Visaul Studio 包含以下错误:资源编辑器未在对话框资源中的控件描述中添加边框样式。所以,手动添加这种风格,祝你好运:)

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

    // add WS_BORDER style manualy...
    GetDlgItem(IDC_PROPSYSCHECK)->ModifyStyle(0, WS_BORDER);
    return TRUE;
}
于 2016-08-18T14:10:22.773 回答