如何使csplitterwnd分割的窗口一边有最小移动限制?解决马上给分 比如我分成左右两边.我想让左边有最小限制.但网上找的不成功.好多copy.转载!!!!都说要重载onmousemove但实事上我无法向继承自csplitterwnd的类加入消息处理...不知道怎么回事.因为在类视图上右击没有 add message halder项.手动添加也不行.要报错. 哪个能给个实现了的示例? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载一个自己的CSplitterWnd类,响应WM_MOUSEMOVE消息。首先在类视图中,对项目右键,选择新增加一个类。在基类列表框中发现没有CSplitterWnd,真无奈啊,只好选择generic CWnd了。输入我们自己的类名CMySplitterWnd。创建成功后,在CMySplitterWnd的头文件和实现文件中,将CWnd全部该成CMySplitterWnd就可以了。记得不要漏掉一个CWnd,也不多,可以直接全局替换就行了。保存一下,然后你会发现add message handler有用了。然后增加WM_MOUSEMOVE消息,根据需要指定你的范围:void CMySplitterWnd::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (point.x > 100) { CSplitterWnd::OnMouseMove(nFlags, point); }}以上我指定了最小距离为100,根据需要自己设置吧:) class CMySplitterWnd : public CSplitterWnd{ DECLARE_MESSAGE_MAP() afx_msg void OnMouseMove(UINT nFlags, CPoint point);};BEGIN_MESSAGE_MAP(CMySplitterWnd, CSplitterWnd) ON_WM_MOUSEMOVE()END_MESSAGE_MAP()void CMySplitterWnd::OnMouseMove(UINT nFlags, CPoint point){ if (point.x < 100) point.x = 100; CSplitterWnd::OnMouseMove(nFlags, point);} 如何让CToolTipCtrl显示的时候不闪烁,鼠标移开的时候消失? 定时器控制子控件移动 mdi 无标题栏移动窗口 如何区分进程?肯定不能通过名字拉 XP系统登录前的桌面是winlogon吗?这个跟ctrl+alt+delete后出来的桌面是同一个吗? mfc如何添加菜单命令函数 在指定位置显示对话框的问题! 关于OpenGL版本更新的问题,急 如何处理单双击的问题。。。? bmp文件的问题,请教各位 字符集的转换,简体中文操作系统中如何显示日文 我这样为什么第二次单击左键,线程却不运行了呢?
{
// TODO: Add your message handler code here and/or call default
if (point.x > 100)
{
CSplitterWnd::OnMouseMove(nFlags, point);
}
}以上我指定了最小距离为100,根据需要自己设置吧:)
{
DECLARE_MESSAGE_MAP()
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
};BEGIN_MESSAGE_MAP(CMySplitterWnd, CSplitterWnd)
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()void CMySplitterWnd::OnMouseMove(UINT nFlags, CPoint point)
{
if (point.x < 100) point.x = 100; CSplitterWnd::OnMouseMove(nFlags, point);
}