首先在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,到此我们就可以向操作对话框似的任意拖加控件!
阅读(1612) | 评论(0) | 转发(0) |