一直觉得窗口的非客户区绘制搞不懂,现在需要自绘一个CEDIT控件,需要自绘非客户区,有些问题求教高手:
1.怎么设置CEDIT边框的宽度,比如设左边框为20,OnNcCalcSize中尝试了下,看不到效果,求教???
2,怎么在NCPAINT中得到非客户区域,有人说是得到整个窗口大小,再求得客户区大小,两者相减??两者相减是用什么函数?相减后得到的不是矩形了吧!!??求指点
3.能不能把改变大小后的边框用bitmap自绘上自己想要的边框图片??比如边框是蓝色半圆角的??求指点,
有没有大牛给个实际的例子,越详细越好,万分感谢,我邮箱[email protected].

解决方案 »

  1.   

    你到codeproject上去找找CEdit的例子,上面有很多自绘的控件很不错的
      

  2.   

    WM_NCPAINT:
    //绘制非客户区
    case WM_NCCALCSIZE:
    if(wParam==true)
     {
               lpNc=(LPNCCALCSIZE_PARAMS)lParam;
       lpNc->rgrc[0].top+=top;   
               lpNc->rgrc[0].bottom-=bottom;   
               lpNc->rgrc[0].left+=left;   
               lpNc->rgrc[0].right-=right; 
    }
    return WVR_ALIGNLEFT|WVR_ALIGNBOTTOM;
       break;
    //改变非客户区
      

  3.   

    为什么这么强调非客户区呢
    在你的edit外围包个边不就可以了