1.
我的一个对话框里面有一个DATETIMEPICKER控件和一个RichEdit控件,对话框刚显示的时候RichEdit控件里是有数据的,当我DATETIMEPICKER控件选择了一个日期之后要求CRichEdit控件清空,
我用如下方法:
void CDlgA::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult) 
{
m_context="";
UpdateData(false);
}
这样,DATETIMEPICKER控件无法选择到所要的日期,原因是UpdateData(false);语句?
有没有什么办法在选择到所要的日期时让 RichEdit控件清空?2.如何可以让CRichEdit控件在单击鼠标右键的时候 显示 "复制""粘贴"等选项?

解决方案 »

  1.   

    CRichEdit控件的问题,当我在里面写了很长的一篇文章之后用:
    m_context="";
    UpdateData(false);并不能让CRichEdit清空.怎么回事呢?
    还有,怎么改变它的字体呢?
      

  2.   

    你可以不用
    UpdateData(false);
    而通过id直接得到CRichEdit对象,然后调用它的setWindowText函数设置为空值,ok;第二个问题:你可以自己在右键的消息函数中自己创建一个右键菜单
      

  3.   

    那我下面这段代码为什么显示不了呢?
    void CDlgA::OnRclickRichedit1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    CPoint curpos,tmppos;
    GetCursorPos(&curpos);
    tmppos = curpos;
    ScreenToClient(&tmppos); CRect rect, rectHeader;
    m_ctrlcontext.GetWindowRect(&rect);
    if(rect.PtInRect(tmppos))
    {
      menu.LoadMenu(IDR_MENU_POPUP);
               pPopup = menu.GetSubMenu(0);
      CPoint pt;
      GetCursorPos(&pt);
      pPopup->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTBUTTON|TPM_LEFTALIGN,pt.x,pt.y,this); 
    }
    *pResult = 0;}
      

  4.   

    问题一:用m_context.SetWindowText("XXX");
    问题二:加右键菜单,但要加在RichEdit上
    改变字体得重建字体对象,重画RichEdit
    例:
    CFont font;
    VERIFY(font.CreateFont(
    12,                        // nHeight
    0,                         // nWidth
    0,                         // nEscapement
    0,                         // nOrientation
    FW_NORMAL,                 // nWeight
    FALSE,                     // bItalic
    FALSE,                     // bUnderline
    0,                         // cStrikeOut
    ANSI_CHARSET,              // nCharSet
    OUT_DEFAULT_PRECIS,        // nOutPrecision
    CLIP_DEFAULT_PRECIS,       // nClipPrecision
    DEFAULT_QUALITY,           // nQuality
    DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    "Arial"));                 // lpszFacename // Do something with the font just created...
    CClientDC dc(this);  
    CFont* def_font = dc.SelectObject(&font);
    dc.TextOut(5, 5, "Hello", 5);
    dc.SelectObject(def_font); // Done with the font.  Delete the font object.
    font.DeleteObject();
      

  5.   

    void CDlgA::OnRclickRichedit1(NMHDR* pNMHDR, LRESULT* pResult)
    这个函数有问题你响应Dialog的右键消息试试