拖动无边框窗体 在一个无边框窗体里有一个CRichEditCtrl控件(充满整个窗体),现在要求在CRichEditCtrl里拖动鼠标即能拖动窗体,怎么弄呢?请给出具体代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计他的意思是CRichEditCtrl只用来显示东西,不给选里面的文字,可以这么的简单实现:在CRichEditCtrl里响应WM_NECHITTEST消息,在这个响应函数里 直接return HTTRANSPARENT在CRichEditCtrl的父窗口里也也响应WM_NECHITTEST消息 直接return HTCAPTION即可 我觉得,可以首先定义一个变量来记录鼠标是否被按下,然后在WM_LBUTTONDOWN里设置该变量为TRUE,然后在WM_MOUSEMOVE里面判断鼠标是否被按下,若按下,就给父窗口发送SetWindowPos消息,改变位置。 "CRichEditCtrl里响应WM_NECHITTEST消息"--找不到此消息 “在WM_LBUTTONDOWN里设置该变量为TRUE” CRichEditCtrl里没有WM_LBUTTONDOWN消息、WM_LBUTTONMOVE消息 "CRichEditCtrl里响应WM_NECHITTEST消息"--找不到此消息------------------是WM_NCHITTEST 写错了 查下MSDN或者搜下百度就知道 BOOL CXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class CRichEditCtrl* pEdit = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1); ASSERT(pEdit && pEdit->GetSafeHwnd()); if((WM_LBUTTONDOWN == pMsg->message) && (pMsg->hwnd == pEdit->GetSafeHwnd())) { CPoint pt = pMsg->pt; SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(pt.x, pt.y)); return TRUE; } return CDialog::PreTranslateMessage(pMsg);} DLL 中的CALLBACK 函数问题 怎么克服float精度问题? 如何调用DLL?在工程中申明接口函数?急 写了一个控制台的服务程序,如何得到自己的句柄? 请大家谈谈对多语言软件的开发 哪位朋友能给我个操作WORD的例子,具体见贴内,进者都有分 如果在Active控件中显示、使用主菜单? 如何测试别人的程序 VC会偷偷删除文件?太诡异了。 用SetSystemTime()更改系统时间的问题? 自定义ActiveX控件刚创建就出错 MFC 连连看 遇到的问题
即可
------------------
是WM_NCHITTEST 写错了 查下MSDN或者搜下百度就知道
{
// TODO: Add your specialized code here and/or call the base class
CRichEditCtrl* pEdit = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1);
ASSERT(pEdit && pEdit->GetSafeHwnd()); if((WM_LBUTTONDOWN == pMsg->message) && (pMsg->hwnd == pEdit->GetSafeHwnd()))
{
CPoint pt = pMsg->pt;
SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(pt.x, pt.y));
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}