由CButton派生出一个新类CUniButton,
动态创建了几个CUniButton的按钮,覆盖了原来的按钮,
想在新的创建的按钮上写上原来按钮上的文字,可是直接setWindowText()的话,
和原来的文字很不一样,而且和整个界面很不协调。从网上找了不少资料可大都是直接改变CButton的字体,少数有改变
动态创建按钮(同时又是派生出的按钮)的字体,试了好像不行。不知各位有没有类似的经验呢?
帮忙请指教,谢谢!

解决方案 »

  1.   

    动态创建的按钮设置字体一样用SetFont()。
      

  2.   

    我再试试吧,
    还有一个问题就是我动态创建CUniButton类的按钮,可是按钮的边界上怎么会是锯齿形状
    虽然不太明显,但也不太美观。
    各位知道怎么回事吗?
      

  3.   

    和其他的不一致??
    一致好说
    1.让新增的和原来的一致
    2.让原来的和新增的一致
    用后者就行了,也就是以前的setwindowtext
      

  4.   

    之前在头文件中声明了CFont font1;下面是初始化时创建不规则按钮的代码:
    font1.CreateFont (50, 0,30,20,FW_NORMAL,  FALSE,  FALSE,  0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,  DEFAULT_PITCH   |   FF_SWISS, "Times   New   Roman ");  
    HDC hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
    HRGN cr; 
    BeginPath(hDC);
    MoveToEx(hDC, 0, 31, NULL);
    LineTo(hDC, 46, 0);
    LineTo(hDC, 75, 39);
    LineTo(hDC, 31, 71);
    LineTo(hDC, 0, 31);
    EndPath(hDC);
    cr = CreateRectRgn(0, 0, 63, 63);
    cr = PathToRegion(hDC);
    m_Btn7.Create("体育馆", WS_CHILD | WS_VISIBLE, CPoint(15 + 64 + 128, 63), cr, this,IDC_SPORT, 1, RGB(254, 247, 211), RGB(211, 247, 254), RGB(211, 247, 254), GetSysColor(COLOR_BTNFACE)); 
        m_Btn7.SetBtnCursor(IDC_HAND);
        m_Btn7.SetTooltipText(_T("计算机学院 软件学院"));
        m_Btn7.SetFont(&font1,TRUE);可是m_Btn7上的字体还是没有改变!
    这是怎么回事呢?是不是创建不规则按钮的时候有问题?
    还是应当在那个派生的CUniButton内部有一个设置字体的方法?
    请指教,谢谢!