初学问题:在用CRichEidtView生成的程序中如何改变字体和颜色!
          如何新建一个格式菜单项将此功能加入其中
          并鼠标右键菜单
          请说明需要用到那些类和那些函数
          谢谢

解决方案 »

  1.   


    CHARFORMAT cf;
             cf.cbSize = sizeof(CHARFORMAT);
    cf.dwMask = CFM_BOLD| CFM_FACE |
                CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
    cf.dwEffects =0;
    cf.yHeight=12;
    strcpy(cf.szFaceName,"Fixedsys");
    GetRichEditCtrl().SetDefaultCharFormat(cf);
    这个是设置默认得字体
    如果要设置选择的文字的字体
    使用SetSelectionCharFormat( CHARFORMAT& cf );
    右键菜单的一种方法:
    处理鼠标右键弹出
    CRichEditView::OnRButtonUp(nFlags, point);
    HMENU hMenu=LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDM_MENU));
    HMENU hsub=GetSubMenu(hMenu,0);
    POINT x;
    x.x=point.x;
    x.y=point.y;
    ClientToScreen(&x);
        TrackPopupMenu(hsub,TPM_LEFTALIGN |TPM_RIGHTBUTTON, x.x, x.y,0,AfxGetMainWnd()->GetSafeHwnd(),NULL);
    当然也可以给工程添加组件,里面有一个trackpopupmenu