我在一个dialog上创建了一个透明的窗口,现在希望能在窗口上显示字符,不知道各位前辈是否有什么办法??
创建的函数如下LPCTSTR lpszClassName=AfxRegisterWndClass(
      CS_VREDRAW | CS_HREDRAW,
      ::LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) ::GetStockObject(GRAY_BRUSH ),
      ::LoadIcon(NULL, IDI_APPLICATION));
CWnd* pWnd = new CWnd; pWnd->Create(lpszClassName, "Hi", WS_CHILD | WS_VISIBLE|WS_CLIPSIBLINGS ,
       CRect(0, 0, 200, 200), this, 1234);
CDC   *dc=pWnd->GetDC();透明窗口是出来了,但不管我怎么对dc进行 操作,都没有效果,不知道前辈有什么好办法,

解决方案 »

  1.   

    能否详细一点,我在onpaint上已经加了,但不知道为什么,还是不出现,
    onpaint上的代码是这样 CPaintDC dc1(this);
    dc1.MoveTo(0,0);
    dc1.LineTo(400,400);
    dc->MoveTo(20,70);
    dc->LineTo(100,100);
    dc->Rectangle(50,50,90,90);
    dc1.TextOut(200,200,"hello world");

    CDialog::OnPaint();
    在dialog上的子“hello world ”和dialog上的线都能出来,可是,窗口上的矩形就不能出现,我不知道为什么
      

  2.   

    不好意思,解决了,把窗口属性改成透明的,东西就出来了,不过还是很感谢 yu_hl(卖柴火的小男孩) 的答复,结贴
      

  3.   

    用SetWindowLong将创建的窗口的消息处理函数设为自己定义的消息处理函数。
    销毁时再设回来。
    具体可参考SetWindowLong以及CallWindowProc.
      

  4.   


    dcl.Rectangle(50,50,90,90);试试
    或者在画矩形时先选点一个有颜色的刷子