Chinaunix首页 | 论坛 | 博客
  • 博客访问: 269280
  • 博文数量: 45
  • 博客积分: 1618
  • 博客等级: 上尉
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-11 10:13
文章分类

全部博文(45)

文章存档

2012年(1)

2011年(25)

2010年(19)

我的朋友

分类: C/C++

2011-02-23 20:09:44

首先在CBridgeDialog类里面添加一个成员HBRUSH m_brush,并在创建对话框的时候初始化

void CBridgeView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{    // TODO: 在此添加专用代码和/或调用基类
    if( m_viewDialog == NULL)
    {
        m_viewDialog = new CBridgeDialog();
        m_viewDialog->Create(IDD_FORMVIEW, this);
        m_viewDialog->ShowWindow(SW_SHOW);
        COLORREF color=GetDC()->GetBkColor();
        m_viewDialog->m_brush=CreateSolidBrush(color);
    }
    CView::OnActivateView(bActivate, pActivateView, pDeactiveView);   
}

添加WM_CTLCOLOR消息处理函数,返回新创建的brush,另外也可以针对不同的控件返回不同的brush,比如下面是对 List-box control 单独设置了一个brush

HBRUSH CBridgeDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    // TODO: 在此更改 DC 的任何特性
    switch(nCtlColor)
    {

     /*

      

CTLCOLOR_BTN 按钮控件

CTLCOLOR_DLG 对话框

CTLCOLOR_EDIT 编辑控件

CTLCOLOR_LISTBOX 列表框

CTLCOLOR_MSGBOX 消息框

CTLCOLOR_SCROLLBAR 滚动条

CTLCOLOR_STATIC 静态控件

*/
     case CTLCOLOR_LISTBOX:
     return CreateSolidBrush(RGB(100,120,250));
    }
    return m_brush;
}

Ok,到此我们就可以向操作对话框似的任意拖加控件!
阅读(1624) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~