我在一个主窗口中创建了一个子窗口,但这子窗口的客户区背景色同主窗口一样,不好分辨,请问各位大虾该怎样设置客户区背景色呢?有劳各位了!!!

解决方案 »

  1.   

    CDC * pDC = GetDC();
    pDC->SetBKColor(RGB(255, 0, 0));
    //另:你的问题没有描述清楚。
      

  2.   

    代码如下:
    void CMainFrame::OnEditPaste() 
    {
    // TODO: Add your command handler code here
    wnd.CreateEx(WS_EX_TOPMOST,NULL,"CY",
    WS_VISIBLE|WS_CAPTION|WS_CHILD|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_BORDER,
    100,100,300,300,this->m_hWnd,NULL);
    ::SetWindowPos(wnd.GetSafeHwnd(),HWND_TOP,
    0,0,300,300,SWP_SHOWWINDOW);

    }
    其中wnd是CMainFrame中定义的CWnd类的一个对象。这个生成的窗口与主框架窗口的客户区背景色都是白色,我该怎样将子窗口的客户区改为黑色!Thank you!
      

  3.   

    我个人认为,最好继承一下,好控制一些://.h
    class CWnd_:public CWnd
    {
    };//.cppvoid CWnd_::OnPaint()
    {
      CPaintDC dc;
       
      //创建一个brush
      //在客户区画上别的颜色
    }
    其中wnd是CMainFrame中定义的CWnd类的一个对象。改为 CWnd_ 的对象。
      

  4.   

    请将代码写全好吗?怎么创建一个brush?又怎么在客户区画上别的颜色?Thanks!!
      

  5.   

    void CWnd_::OnPaint()
    {
      CPaintDC dc;
       
      //创建一个brush
      CBrush NewBrush;
      CBrush *pOldBrush;  NewBrush.CreateSolidBrush(RGB(255, 0, 0));  //在dc中选择 new 的 brush
      pOldBrush = dc.SelectObject(&NewBrush);  //得到客户区
      CRect rect;
      GetClientRect(&rect);
      
      //在客户去画
      dc.Rectangle(&rect);;  //选择 老的 brush
      dc.SelectObject(pOldBrush);}
      

  6.   

    哦,我知道了!Very very good!
    多谢了!!!!!