本帖最后由 ad1075 于 2010-04-23 11:23:08 编辑

解决方案 »

  1.   

    感觉你的思路不太对,你说将标签页整体移动,左边放置按钮,那你的标签页就应该作为某个窗体的子窗体。
    而你却是把这个标签页作为一个Dialog DoModal。这肯定无法实现你要的功能。
      

  2.   

    sheet.SetWindowPos(&wndBottom,20,0,99,99,SWP_NOACTIVATE);sheet.DoModal();你的窗口都没有创建出来你就SetWindowPos了,你在SetWindowPos语句之前,看看你的sheet的GetSafeHwnd()有值吗?DoModal()调用以后才会生出窗口的,你可以你的SetWindowPos(&wndBottom,20,0,99,99,SWP_NOACTIVATE);发到sheet类的窗口初始化函数中去
      

  3.   


    我把sheet.SetWindowPos(&wndBottom,20,0,99,99,SWP_NOACTIVATE);这句话已到了DoModal后面去了,可是这样也不行啊
    一是属性页大小没发生变化
    二是当关闭属性页窗口是还是出错这是怎么回事呢?
      

  4.   


    sheet的GetSafeHwnd()显示不存在。。
      

  5.   

    sheet.Create (IDD_DIALOG,NULL);
    sheet.ShowWindow(SW_HIDE);
    sheet.SetWindowPos(wndBottom,20,0,99,99,SWP_NOACTIVATE);
    sheet.ShowWindow(SW_HIDE);能用非模态的吗?这代码我随便写的,没试过
      

  6.   

    移到后面当然也不行了,DoModal返回后,对话框已经没了,总之,在前面不行,在后面也不行,因为你用的是模态对话框,改非模态的吧
      

  7.   

    sheet.SetWindowPos(&wndBottom,20,0,99,99,SWP_NOACTIVATE);上面那句写到你的对话框的 WM_INITDIALOG 消息响应中去。
      

  8.   


    用你的方法,属性页确实出来了,可是闪了一下就没了
    最后一个应该是sheet.ShowWindow(SW_SHOW);吗?
    可是加上了之后还是会闪一下就消失
      

  9.   


    cpropertysheet窗口是动态创建的,没有对话框啊