就像有些对话框,当点了按钮后就会展开,再点后就会收缩,请问要怎样实现?急!
解决方案 »
- 请问CComQIPtr<IFun>spFun 和 CComQIPtr<IFun,&IID_IFun>spFun这两种声明到底有什么区别?
- TabCtrl使用时,其显示内容的父窗体应该是哪个?
- 用哪个API可以播放像TM这类型的文件??
- 请问如何通过CView对象获得CMDIChildWnd对象
- 请问用VC怎么实现Excel从磁盘上存在的Access数据库导入数据?关键是动态指定mdb的位置。
- DLL连接问题
- 如何处理这种问题??各位高手帮忙
- C++ 你们是怎么备份数据库的
- 如何改变进程优先级?
- 安装打印机时可以安装端口为一个文件,但这个文件里面全是乱码,用什么东东看?
- 请问为什么要锁内存?
- 令人头疼的画图大小和打印的问题!
static CRect rectLarge;
static CRect rectSmall;
if(rectLarge.IsRectNull())
{
CRect rectSeparator;
GetWindowRect(&rectLarge);
GetDlgItem(IDC_STATIC_LINE)->GetWindowRect(&rectSeparator);
rectSmall.left=rectLarge.left;
rectSmall.top=rectLarge.top;
rectSmall.right=rectSeparator.right;
rectSmall.bottom=rectSeparator.bottom;
}
if(m_bCheckAlarm!=false)
{
SetWindowPos(NULL,rectSmall.left,rectSmall.top,rectLarge.Width()-17,rectLarge.Height(),
}
else
{
SetWindowPos(NULL,rectSmall.left,rectSmall.top,rectSmall.Width(),rectSmall.Height(),
SWP_NOMOVE | SWP_NOZORDER);
}
在你伸缩的地方,加一个控件(让他隐),取他的坐标,就可以了。
static CRect rectLarge;
static CRect rectSmall;
if(d)
{
GetWindowRect(&rectLarge);//large中保存原始的位置信息
//GetDlgItem(IDC_STATIC_LINE)->GetWindowRect(&rectSmall);//隐藏的控件的初始位置信息保存在rectSmall中
d=false;
}
if(m_bCheckAlarm)//初始就是没有变化时,变小
{
m_bCheckAlarm=false;
SetWindowPos(NULL,rectLarge.left,rectLarge.top,rectLarge.Width(),rectLarge.Height()-200,SWP_NOMOVE | SWP_NOZORDER);
}
else
{
m_bCheckAlarm=true;
SetWindowPos(NULL,rectLarge.left,rectLarge.top,rectLarge.Width(),rectLarge.Height(),
SWP_NOMOVE | SWP_NOZORDER);
}