我在我的对话框中添加一按钮控件,并增加一个名为m_button1的control型变量。现在我希望在我用鼠标拖动对话框边框改变对话框大小时,让我的按钮的宽度始终于我的对话框的宽度相等。我在对话框的void CQqPanel::OnSizing(UINT fwSide, LPRECT pRect)函数中写:
{
CDialog::OnSizing(fwSide, pRect);
// TODO: Add your message handler code here
WINDOWPLACEMENT dlgrect;
this->m_button1.GetWindowPlacement(&dlgrect);
RECT rect;
rect.top=dlgrect.rcNormalPosition.top;
rect.left=dlgrect.rcNormalPosition.left;
rect.bottom=dlgrect.rcNormalPosition.bottom;
rect.right=pRect->right;
this->m_button1.MoveWindow(&rect,TRUE);
}
这样我的按钮确实可以随对话框一起变化。但问题在于,当我用鼠标拖动我的对话框边框时,按钮随对话框一起改变时,按钮上的标题文字消失不见了。请教各位,应如何解决!!!

解决方案 »

  1.   

    void CQqPanel::OnSizing(UINT fwSide, LPRECT pRect)函数中写:
    {
    CDialog::OnSizing(fwSide, pRect);
    // TODO: Add your message handler code here
          if (m_button1.GetSafeHwnd() != NULL)
          { 
    WINDOWPLACEMENT dlgrect;
    m_button1.GetWindowPlacement(&dlgrect);
    RECT rect;
    rect.top=dlgrect.rcNormalPosition.top;
    rect.left=dlgrect.rcNormalPosition.left;
    rect.bottom=dlgrect.rcNormalPosition.bottom;
    rect.right=pRect->right;
    this->m_button1.MoveWindow(&rect); // 去掉TRUE试试
          } 
    }
      

  2.   

    刷新一下窗口!或者干脆
    SetDlgItemText(按钮的ID,“按钮上的文字”);