最好有源代码!谢谢

解决方案 »

  1.   

    vcbase上有一个,不是很好,可以参考的。好象是第十二还是十三期。
      

  2.   

    以对话框为例:
    重载DefWindowProc;LRESULT CMyXPDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
    LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);

    if (!::IsWindow(m_hWnd))
    return lrst;

    if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
    {
    CDC* pWinDC = GetWindowDC();
    if (pWinDC)
    MyDrawTitle(pWinDC);//自己定义的画标题栏函数;
    ReleaseDC(pWinDC);
    }
    return lrst;
    }
    在OnPaint画边框;
    void CMyXPDlg::OnPaint() 
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
    int cxIcon = GetSystemMetrics(SM_CXICON);
    int cyIcon = GetSystemMetrics(SM_CYICON);
    CRect rect;
    GetClientRect(&rect);
    int x = (rect.Width() - cxIcon + 1) / 2;
    int y = (rect.Height() - cyIcon + 1) / 2; dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
    CDialog::OnPaint();
    }
    }