1.
我的一个对话框里面有一个DATETIMEPICKER控件和一个RichEdit控件,对话框刚显示的时候RichEdit控件里是有数据的,当我DATETIMEPICKER控件选择了一个日期之后要求CRichEdit控件清空,
我用如下方法:
void CDlgA::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
{
m_context="";
UpdateData(false);
}
这样,DATETIMEPICKER控件无法选择到所要的日期,原因是UpdateData(false);语句?
有没有什么办法在选择到所要的日期时让 RichEdit控件清空?2.如何可以让CRichEdit控件在单击鼠标右键的时候 显示 "复制""粘贴"等选项?
我的一个对话框里面有一个DATETIMEPICKER控件和一个RichEdit控件,对话框刚显示的时候RichEdit控件里是有数据的,当我DATETIMEPICKER控件选择了一个日期之后要求CRichEdit控件清空,
我用如下方法:
void CDlgA::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
{
m_context="";
UpdateData(false);
}
这样,DATETIMEPICKER控件无法选择到所要的日期,原因是UpdateData(false);语句?
有没有什么办法在选择到所要的日期时让 RichEdit控件清空?2.如何可以让CRichEdit控件在单击鼠标右键的时候 显示 "复制""粘贴"等选项?
解决方案 »
- 请问一些PDF操作的资料?
- WaitForMultipleObjects等待多个子线程结束
- 这个控件如何用ATL做??高手们指点!!
- 看到书上MFC程序中,请教:
- 怎么得到一个ie窗口中用鼠标选中的网页内容?
- 如何编程使用netsh命令修改静态ip 或者用其他方法也可以
- dll的注销问题
- 有关DataGrid控件使用的问题!
- CChildView改变改变继承类
- NT安装问题!全部分数送上!
- 关于_beginthreadex的使用。程序有错误,进来帮帮忙
- c:\program files\microsoft visual studio\vc98\atl\include\atlbase.h(4498) : error C2660: 'VarCmp' : function does not take 3 par
m_context="";
UpdateData(false);并不能让CRichEdit清空.怎么回事呢?
还有,怎么改变它的字体呢?
UpdateData(false);
而通过id直接得到CRichEdit对象,然后调用它的setWindowText函数设置为空值,ok;第二个问题:你可以自己在右键的消息函数中自己创建一个右键菜单
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;}
问题二:加右键菜单,但要加在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();
这个函数有问题你响应Dialog的右键消息试试