应该是背景色的原因,怎么去掉画刷的背景色呢?
我用的是pDC->RoundRect()来画圆角矩形的。圆角矩形,背景色

解决方案 »

  1.   

    //Draw Tooltip Rect and Text
    pDC->SetBkMode(TRANSPARENT);
    CBrush brushToolTip(COLORREF(RGB(239,239,239)));
    pOldBrush = pDC->SelectObject(&brushToolTip);
    pDC->FillRect(&rectToolTip, &brushToolTip);
    //Draw rectangle filled with COLOR_INFOBK
    pDC->RoundRect(0,0,rectToolTip.Width(), rectToolTip.Height(), 20,20);
    //put back old objects
    pDC->SelectObject(pOldBrush);
    pDC->SelectObject(pOldPen);
    pDC->SelectObject(pOldFont);
    UpdateWindow();
    还是没用。。
      

  2.   

    外面的框是我画的一个圆角矩形,我做的就是tooltip,就是画个圆角矩形,然后和图片显示在矩形宽里面。
      

  3.   

    他继承的是CWnd类。 CRect rectInitialSize(0,0,0,0);//Initial Window size. Will be dynamically changed later.
    return CreateEx(WS_EX_TOOLWINDOW , NULL, NULL,WS_POPUP |  WS_CHILD | WS_CLIPSIBLINGS,
    rectInitialSize,pParentWnd, NULL, NULL);这样创建这个窗口
      

  4.   

    你在你的onpaint 里面 画成白色
      

  5.   

    那四个角一个个是默认的画刷背景色吧你在onpaint 中处理一下不就好了 试过了?
      

  6.   

    纠结呀,我刚才试了下,透明背景竟然是黑色的,CBrush *brushToolTip = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));用这个测了下。这怎么办。
      

  7.   

    刷新背景是用UpdateWindow()这个函数么?
      

  8.   

    提醒lz结贴。
    顺便说一下,无论怎么样,只要窗口是矩形,四个圆角就会有问题,所以你最好用SetWindowRgn把窗口改成圆角矩形。该死的csdn 提交回复 失败,一次又一次。
      

  9.   

    什么纠结问题?刷子,用CBrush就好了,CBrush析构时自动释放刷子资源的。
    圆角矩形?如果你的窗口大小不改变,在OnInitDialog中调用一次SetWindowRgn就可以了。不过画边框,我比较推荐FillRgn,因为RoundRect会填充圆角矩形