mfc分个窗口,设置分割条不可移动

最近要做一个项目,做界面时遇到了这个问题,找了好多资料,终于解决了,在此记录一下,希望对有需要的人有所帮助。好了,不多说了,具体的处理如下:

新建一个类CFixSplitterWnd继承CSplitterWnd,添加

ON_WM_LBUTTONDOWN()

ON_WM_SETCURSOR()

ON_WM_MOUSEMOVE()

三个消息的响应,主要代码如下:

头文件

1 protected:
2     afx_msg void OnLButtonDown(UINT nFlags, CPoint pt);
3     afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
4     afx_msg void OnMouseMove(UINT nFlags, CPoint pt);
5     DECLARE_MESSAGE_MAP()

源文件

BEGIN_MESSAGE_MAP(CFixSplitterWnd, CSplitterWnd)
    ON_WM_LBUTTONDOWN()
    ON_WM_SETCURSOR()
    ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

void CFixSplitterWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
    // 直接返回,不处理
    return;
}

BOOL CFixSplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
    // 当光标进入分割窗口时,不允许改变样子,不处理
    return FALSE;
}

void CFixSplitterWnd::OnMouseMove(UINT nFlags, CPoint point)
{
    //将CSplitter类的处理改为由CWnd处理
    //CSplitterWnd::OnMouseMove(nFlags, point);
    CWnd::OnMouseMove(nFlags, point);
}

mfc分个窗口,设置分割条不可移动

时间: 2024-10-20 18:43:55

mfc分个窗口,设置分割条不可移动的相关文章

iOS8 UITableView 分割条设置separator intent = 0 不起作用

ios7的时候在storyboard 设置 TableView的separator intend = 0 可以让tableview的分割条顶到头. 但是,升级了iOS8时,发现不起作用了. 经过google,在 stackoverflow 发现了答案 翻译纪录一下 iOS8 在cell和tableview中都引入了layoutMargins属性,而且这个属性在iOS 7中并没有,所以你需要区别对待这两个版本. 使用 Ricky 的方案设置cell中的layoutMargin属性: -(void)

js范例学习——窗口/框架与导航条设计之弹出窗口设置

1.弹出窗口设置 在JS中,可以使用window对象实现对窗口的控制. window常用方法: alert();弹出一个警告对话框: confirm();在确认对话框中显示指定的字符串: prompt();弹出一个可输入对话框: close();关闭被引用的窗口: foucus();将被引用的窗口放在所有打开窗口的最前方,成为焦点窗口: open();打开新的窗口并且显示由URL或名字引用的文档,可以创建窗口的属性: resizeTo(x,y);设置窗口的大小: resizeBy(offsetx

【MFC】父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的,直接在对话框的类向导中的虚函数里边添加PreCreateWindow函数,但是实际上有没有用就没有试过.望试验的告知,谢谢.) 在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中添加下面的代码可以固定窗口大小 cs.style = WS_OVERLAPPE

js 实现分割条

js 实现 切分条效果, 为了熟悉js  写法,纯javascript 脚本编写 简单介绍几个函数: setCapture()函数的作用就是将后续的mouse事件都发送给这个对象, releaseCapture() 就是将鼠标事件还回去 由document.window.object之类的自行来处理,这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰.另外,还有一个很重 要的事情是,在Win32上,mouse move的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针

MFC获得主窗口和父窗口指针

MFC编程中常常遇到子窗口向父窗口传递参数的情况,这就需要获得父窗口的指针. 例:主对话框CMyMainDlg通过按钮ButtonA进入对话框CMyParentDlg,CMyParentDlg在通过按钮ButtonB进入对话框CMyChildDlg.现在需要在CMyChildDlg分别访问CMyParentDlg和CMyMainDlg的内容,需要在CMyChildDlg中加入以下两条语句: CMyMainDlg    *pMMD = (CMyMainDlg*)AfxGetMainWnd();  

MFC学习之窗口基础

WinMain函数 1.句柄(HANDLE):{ 1. 定义:资源的标识 2. 句柄的作用: 操作系统通过句柄来找到对应的资源,从而对这些资源进行管理和操作. 3句柄的分类:(按资源){ 1.图标句柄(HICON) , 2.光标句柄(HCURSOR) , 3. 窗口句柄(HWND) , 4.应用程序实列句柄(HINSTANCE). } } 2.Windows应用程序,操作系统,计算机硬件之间的相互关系 Windows程序的入口函数: 窗口应用程序入口: Int WINAPI WinMain( H

sql server 更新表,每天的数据分固定批次设置批次号sql

按表中的字段 UpdateTime 按每天进行编号,每天的编号都从1开始编号,并附带表的主键 cid,把数据存入临时表中 WITH temp AS (SELECT cid,updatetime, ROW_NUMBER() OVER (PARTITION BY CONVERT(varchar(10), UpdateTime, 20) ORDER BY updatetime) AS Row_Num FROM Customer_Transfer ) 从临时表中根据主键cid进行更新 BatchNo,给

MFC获取各个窗口(体)之间的指针(对象)

MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决. HWND hWnd=::FindWindow(NULL,_T("Sphere"));      //得到对话框的句柄 C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针 pWnd->xxx( );   //调用C***Dialog中的函数xxx(); 以上参考:http:

MFC中关闭窗口的几种办法+MFC中MessageBox的用法

MFC中关闭窗口的几种办法: 退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE); 关闭当前窗口用DestroyWindow( ); 关闭模式对话框用EndDialog(0); MFC中MessageBox的用法 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","