// TestDlg.h : 头文件
#include "DlgSlider.h"void IniMyDlg(void);
void IniMyPos(void);CDlgSlider m_DlgSlider;

afx_msg void OnSize(UINT nType, int cx, int cy);// TestDlg.cpp : 实现文件
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // ... // TODO: 在此添加额外的初始化代码
IniMyDlg();
IniMyPos(); return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}void CTestDlg::IniMyDlg(void)
{
m_DlgSlider.Create(CDlgSlider::IDD, this); m_DlgSlider.ShowWindow(SW_SHOW);
}void CTestDlg::IniMyPos(void)
{
if (m_DlgDoor.GetSafeHwnd())
{
//此地如何得到this窗口的屏幕座标
CRect rcWindow;
GetWindowRect(&rcWindow); //{top=0 bottom=332 left=0 right=486}
ClientToScreen(&rcWindow); //{top=29 bottom=361 left=3 right=489}
m_DlgDoor.MoveWindow(rcWindow); //问题:我想让DlgDoor移到CTestDlg一样大小的地方,如何做到?
//做到之后,我再考虑移到CTestDlg右下边,做为它的附属。
}
}void CTestDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
IniMyPos();
}

解决方案 »

  1.   

    浮萍窗口做不到,现在改成一般的浮动窗口。为什么一定要在OnMove消息处理中,m_DlgDoor.MoveWindow(rcWindow)才能正确得到?
      

  2.   

    就是在主窗口旁边,另外做一个小窗口,能够滑进滑出。滑进:由右往左,width越来越小。滑出:由左往右,width越来越大。
      

  3.   


    我知道了
    网页上经常有那种效果
    VS的窗口设置自动隐藏也是这个效果
    你上网搜 仿VS 界面 布局