想做一个不规则窗口(大概就是矩形的头上加个箭头形状的尾巴),用来当鼠标移动到某个地方时弹出这个窗口显示一些信息,当鼠标移走后该窗口消失.大家帮忙看看该怎么实现好呢。

解决方案 »

  1.   

    create a rgn, then SetWindowRgn
      

  2.   

    这里有一个字体窗口例子,假设为响应按钮事件:CDC *dc=this->GetDC();
    HDC hDC;
    CFont mFont;
    hDC = ::GetDC(this->m_hWnd); VERIFY(mFont.CreateFont(
    200, 50, 0, 0, FW_HEAVY, TRUE, FALSE, 
    0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,        
    CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,             
    DEFAULT_PITCH | FF_SWISS, "宋体"));                  
    if (hDC!=NULL)
    { dc->BeginPath(); dc->SetBkMode(TRANSPARENT);
    CFont * pOldFont;
    pOldFont = dc->SelectObject( &mFont );
    dc->TextOut(0, 0, "LOVE");
    dc->SelectObject( pOldFont );
    mFont.DeleteObject(); dc->EndPath(); m_wndRgn.CreateFromPath(dc); this->SetWindowRgn(m_wndRgn, TRUE);
    }
    else
    AfxMessageBox("Error!");
      

  3.   

    请问该怎么设置对话框的颜色,用pDC->SetBkColor(RGB(0,255,0));好像是设置字体背景色的
    该怎么设置对话框的颜色呢?
      

  4.   

    在InitInstance()
    {
      SetDialogBkColor(RGB(100,100,100),RGB(255,255,255));]
    就搞定了
      

  5.   

    WM_CTLCOLOR
    若为对话框,则
    return 你指定颜色的HBRUSH
      

  6.   

    TO bianhh:
    SetDialogBkColor(RGB(100,100,100),RGB(255,255,255));
    这个函数是在APP里设的,所有的对话框都变成一个颜色了,请问怎么只让某个对话框的颜色改变?
    TO smartukyo:
    WM_CTLCOLOR这个函数里好像是对TEXT里的字体设置,没有对对话框的设置