我用设置的CPoint值来控制子窗口的显示位置函数:(子窗口是child型的)
SetWindowPos的参数,可是不知道为什么,子窗口总是显示在相对于主窗口的位置,
主窗口最小化,子窗口也跟着隐藏了
我想让子窗口显示在相对于桌面的位置。
SetWindowPos的参数,可是不知道为什么,子窗口总是显示在相对于主窗口的位置,
主窗口最小化,子窗口也跟着隐藏了
我想让子窗口显示在相对于桌面的位置。
解决方案 »
- CAB包问题,请各位大虾帮忙,
- ISAPI筛选器重新定向为何出现错误?
- 菜鸟请教在VC下开发数据库应用程序,一般用什么控件能比较方便的实现数据库的增,删,改?
- (教师组织/官员强奸中学生案)请往死里顶
- 请问有关ATL注册的问题
- 一个对象数组的问题,菜鸟问题!!
- 如何在一个win32的dll下显示一个对话框?
- 谁能解释这个函数是干什么用得(EnterCriticalSection)
- 初用VC不知道怎么给一个动态生成的CButton产生一个事件,如OnClick(原用BCB)
- 在solidworks二次开发中如何用vc++在二维图中插入一个标题栏 。插入块
- VC6.0中文本框问题
- 结构继承默认是开有继承吗
const int nScrceenX=::GetSystemMetrics(SM_CXFULLSCREEN) ;
const int nScrceenY=::GetSystemMetrics(SM_CYFULLSCREEN);
// set front
SetWindowPos(&wndTopMost,
nScrceenX-m_rctClient.right,
nScrceenY-m_rctClient.bottom-70,
0,0,SWP_NOSIZE|SWP_NOMOVE);
CRect ctRect;
GetDlgWindowRect(ID,&ctRect);
ClientToScreen(&ctRec);//有没有效果一样
然后,自己设置了
一个CPoint Point(200,200)值
再SetWindowPos(NULL,Point.x-ctRect.left/2,……);
void ClientToScreen( LPPOINT lpPoint ) const;void ClientToScreen( LPRECT lpRect ) const;
这是将程序里的坐标点,转换成屏幕上的坐标点,
SetWindowPos(GetDesktopWindow(),m_ptIcon.x-Rc.Width()/2,m_ptIcon.y-Rc.Height()-6,Rc.Width(),Rc.Height(),NULL);
没效果啊,
在进行一些处理
2. 获取子窗口在桌面上的位置WS:GetWindowRect(子窗口句柄);
3. 拿WF和WS计算出实际的子窗口位置:C = WS - WF;
4. 移动子窗口:子窗口.MoveWindow( C );以上为逻辑代码,你可以翻译为你实际需要的语句
改成Popup就可以了
谢谢各位了,结贴了