怎么将客户区分成9块?
如何将客户区分成9块??????????
我先说说我的理解,dialog的客户区就是除了最上面的蓝条,剩下的就是客户区了吧,我想把客户区分成3 * 3 九块,鼠标滑过每一块的时候有不同的响应,问题来了,我在客户区还有一个picturectrl控件,用于封装OpenGL,每次鼠标滑过picturectrld的时候,并没有产生响应,但滑到其他地方却有响应,不知道应该怎么解决,下面是dlg.cpp中OnInitDialog()的部分代码。rect,dlg,rect1都是CRECT类型,在.h文件里已经定义好了。rect1是9个小格子最左上角的那个。
------解决方案--------------------
确保是在你的 picturectrl控 里处理的!你描述的现象好像不是
------解决方案--------------------
你做的是自定义控件吧
最好不要用PictureCtrl
这篇文章你或许可以参考一下
http://blog.****.net/xianglitian/article/details/6164103
------解决方案--------------------
在窗口中处理WM_NCMOUSEMOVE消息。
我先说说我的理解,dialog的客户区就是除了最上面的蓝条,剩下的就是客户区了吧,我想把客户区分成3 * 3 九块,鼠标滑过每一块的时候有不同的响应,问题来了,我在客户区还有一个picturectrl控件,用于封装OpenGL,每次鼠标滑过picturectrld的时候,并没有产生响应,但滑到其他地方却有响应,不知道应该怎么解决,下面是dlg.cpp中OnInitDialog()的部分代码。rect,dlg,rect1都是CRECT类型,在.h文件里已经定义好了。rect1是9个小格子最左上角的那个。
- C/C++ code
//控件显示 GetDlgItem(IDC_OPENGL)->GetWindowRect(rect);//屏幕坐标 ScreenToClient(rect);//控件的客户区坐标 rect.top=0; rect.left=0; rect.bottom-=rect.top; rect.right-=rect.left; m_openGL.Create(rect, GetDlgItem(IDC_OPENGL)); this->GetClientRect(dlg); //客户区划分 ScreenToClient(rect1); rect1.left = 0; rect1.top = 0; rect1.right = 1.0/3.0 * dlg.right; rect1.bottom = 1.0/3.0 * dlg.bottom;
------解决方案--------------------
确保是在你的 picturectrl控 里处理的!你描述的现象好像不是
------解决方案--------------------
你做的是自定义控件吧
最好不要用PictureCtrl
这篇文章你或许可以参考一下
http://blog.****.net/xianglitian/article/details/6164103
------解决方案--------------------
在窗口中处理WM_NCMOUSEMOVE消息。