如题,建立了一个基于对话框的应用程序,但觉得不靓,想改一下色彩,不知道如何实现,高人请进,马上结贴放分

解决方案 »

  1.   

    对话框的颜色由系统决定的。比如你更改系统的配色方案,对话框的颜色也就跟着变了。
    要实现自己控制自己的对话框的颜色,大概要用到OWN DRAW吧?
      

  2.   

    看看这个,我想对你一定有帮助!
    http://www.vcfan.com/vc/article/article_form/2001111611543.htm
      

  3.   

    http://expert.csdn.net/Expert/topic/2381/2381107.xml?temp=.296261
      

  4.   

    void CMyDlg::OnPaint() 
    {
    if (IsIconic())

    else
    {
    CRect rect;
    CPaintDC dc(this);
    GetClientRect(rect);
    dc.FillSolidRect(rect,RGB(0,255,0)); //设置为绿色背景CDialog::OnPaint();
    }
      

  5.   

    在对话框中重载OnCtlColor函数
    添加如下代码
    if(nCtlColor==CTLCOLOR_LISTBOX)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_SCROLLBAR)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_EDIT)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_STATIC)
    {
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(160,180,220));
    HBRUSH b=CreateSolidBrush(RGB(160,180,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_DLG)
    {
    pDC->SetBkColor(RGB(160,180,220));
    pDC->SetTextColor(RGB(0,0,0));
    HBRUSH b=CreateSolidBrush(RGB(160,180,220));
    return b;
    }