请教窗口最大化最小化的问题 请教一下,当窗口最大化最小化按钮按下之后,怎么样保持原来控件的相对位置不变? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最小化不会改变控件的位置吧?如果要最大化后,控件之间的相对位置没有变化(随着最大化,控件的位置也随之移动,保持原来的位置比例),要达到这种效果的话,需要自己对控件进行位置调整。比如用GetDlgItem获取控件的句柄,再用MoveWindow来移动控件。 GetClientRect();获取当前窗口位置,计算相对位置,movewinodw 或setwinodwpos 重新定位窗口 最大化后,重新设置控件的位置,WM_SIZE消息中 相对位置没有改变,是绝对位置改变了。一般都得自己调整,中间的话可以根据crect的CenterPoint()来相应设置。 也只有麻烦的方法了,VC出来的东西肯定比不上JAVA的适应能力了。 请问下获取控件位置和设置控件位置的函数是哪个?void mydlg::OnSize(UINT nType, int cx, int cy) { LPRECT lpRect; m_ctrlSlip.GetWindowRect(lpRect);//此处死掉,但m_ctrlSlip有值 lpRect->left*=(cx/m_icx); lpRect->right*=(cx/m_icx); lpRect->top*=(cy/m_icy); lpRect->bottom*=(cy/m_icy); m_ctrlSlip.SetWindowPos(NULL,lpRect->left,lpRect->top,lpRect->right,lpRect->bottom,SWP_NOSIZE);CDialog::OnSize(nType, cx, cy);} 用GetDlgItem获取控件的句柄,再用MoveWindow来移动控件。另外,在OnSizing()事件里调整控件位置。 用GetClientRect来获取原来位置。 低级鼠标钩子怎么钩Xbutton? 将数组传递到函数,提示错误? 关于托盘气泡的问题? 100分求解 VC程序发布 编译产生c1.exe什么原因? OCX控件不能正常下载注册 CList 如何实现 MoveLast,MoveFirst,MoveNext,MovePrevious. 请问怎样用win32 API 读出指定进程在内存中的所有数据? 如何在vc+中突破dialog中的edit控件中文字输入限制问题? 请问各位大虾: 什么地方有运筹学方面的软件下载? 求关于栈的一个算法 txt文本数据行数确定
一般都得自己调整,中间的话可以根据crect的CenterPoint()来相应设置。
也只有麻烦的方法了,VC出来的东西肯定比不上JAVA的适应能力了。
void mydlg::OnSize(UINT nType, int cx, int cy)
{
LPRECT lpRect;
m_ctrlSlip.GetWindowRect(lpRect);//此处死掉,但m_ctrlSlip有值
lpRect->left*=(cx/m_icx);
lpRect->right*=(cx/m_icx);
lpRect->top*=(cy/m_icy);
lpRect->bottom*=(cy/m_icy);
m_ctrlSlip.SetWindowPos(NULL,lpRect->left,lpRect->top,lpRect->right,lpRect->bottom,SWP_NOSIZE);
CDialog::OnSize(nType, cx, cy);
}
用GetClientRect来获取原来位置。