我想做个小程序,
1 一个基于对话框的程序。
2 里面有一个编辑框
3 编辑框下面有个按钮双击对话框的边框时,希望能够只显示编辑框,隐藏掉除了编辑框之外的所有元素,包括按钮和对话框的边框。
我的做法:
在对话框的双击事件上,使用代码:
this->ModifyStyle(WS_CAPTION | WS_BORDER,0,SWP_NOMOVE|SWP_NOZORDER|SWP_NOSIZE);也尝试了
this->ModifyStyle(WS_CAPTION | WS_BORDER,0,0);但这样不行。上面的做法,双击之后,窗口内的编辑框位置自动往上移动了。
这样我再想让窗口重新显示的时候,窗口上面的一部分被编辑框遮住了。
不明白原因,请大家指点一下,谢谢。
1 一个基于对话框的程序。
2 里面有一个编辑框
3 编辑框下面有个按钮双击对话框的边框时,希望能够只显示编辑框,隐藏掉除了编辑框之外的所有元素,包括按钮和对话框的边框。
我的做法:
在对话框的双击事件上,使用代码:
this->ModifyStyle(WS_CAPTION | WS_BORDER,0,SWP_NOMOVE|SWP_NOZORDER|SWP_NOSIZE);也尝试了
this->ModifyStyle(WS_CAPTION | WS_BORDER,0,0);但这样不行。上面的做法,双击之后,窗口内的编辑框位置自动往上移动了。
这样我再想让窗口重新显示的时候,窗口上面的一部分被编辑框遮住了。
不明白原因,请大家指点一下,谢谢。
RECT rt;
GetClientRect(&rt);
ClientToScreen(&rt);
ModifyStyle(WS_CAPTION|WS_BORDER, 0, SWP_NOREDRAW);
MoveWindow(&rt);
我用了你的方法,隐藏时没有问题了,控件都在原来的位置上。
但是,我想再次双击让窗口边框重现的时候,窗口又下移了。
来回双击多次之后,窗口已经完全没有了,缩成了一个小框框了。
我没有想明白,双击回来要保持原来的位置和大小怎么办啊,多谢啊。
我在initdialog中把窗口矩形rtTotal存起来了
this->GetWindowRect(&rtTotal);
ClientToScreen(&rtTotal);
但是我在重新显示窗口的时候,窗口跑到屏幕的左上方去了,大小和高度等等都是对的。
请问,这为什么啊?
毕竟我已经转成屏幕坐标了啊,多谢啊!
ClientToScreen(&rtTotal); 第二句多余了第一行代码就说获取的屏幕坐标.楼主的问题,只需得到标题栏的高度,相应事件前进行运算.没事动动笔.只要你不算错.就会实现功能