1.MFC对话框程序里面如何定义一个全局变量??
2.是不是只能创建一个CPaintDC啊。否则只会画第一个dc画出的图形还有,我设置背景透明始终不成功,郁闷死我了:
在OnPaint当中:
CPaintDC dc(this);
RECT Rect;
GetClientRect(&Rect); 
         CRect RectOuter(100,20,400,320); //radius: 150
CPen penThick;
CPen *oldPen;
CPen penThin;
dc.SetBkMode (TRANSPARENT);
penThick.CreatePen (PS_SOLID,3,RGB(0,0,255));
penThin.CreatePen (PS_SOLID,2,RGB(0,0,255));
oldPen=dc.SelectObject (&penThick);
dc.Ellipse (RectOuter);
dc.SelectObject (&penThin);
dc.Ellipse (CRect(105,25,395,315));还有:如上面,画圆有没有更直观的方法?

解决方案 »

  1.   

    1、没有什么特别的,和普通的程序一样 。
    2、一般用GetDC来得到当前的DC.4、你觉得这样画圆还不够直观吗?
      

  2.   

    1.在类之外定义,和一般程序一样
    2。CPaintDC只在OnPaint中使用,在其他地方用GetDC等,获得DC来画图4。画圆就是如此画了,要不自己描
      

  3.   

    2.
    CWnd* subWnd;
    CRect rect;
    CDC dc1,dc2;subWnd = (CWnd*)GetDlgItem(IDC_STATIC1);
    subWnd->GetClientRect(&rect);
    rect.NormalizeRect();
    dc1 = subWnd->GetDc();subWnd = (CWnd*)GetDlgItem(IDC_STATIC2);
    subWnd->GetClientRect(&rect);
    rect.NormalizeRect();
    dc2 = subWnd->GetDc();3.
    The background mode defines whether the system removes existing background colors on the drawing surface before drawing text, hatched brushes, or any pen style that is not a solid line.
    TRANSPARENT   Background is not changed before drawing. 
    不知楼主说的设置不成功指什么?
      

  4.   

    在类外部定义,你可以参考theApp的实现方法,它就是一个全局变量。
      

  5.   

    to  zt209(Siguangguang++):不成功就是画出的圆不是透明的 啊,里面是白色背景。
    【对话框背景为浅灰色】丑死了