您的位置:首页 > 其它

CFormView上让控件的大小随着窗体的变化而自动适应

2018-03-22 18:55 225 查看
比如说在CFormView上有个按钮控件,为了让按钮的大小和位置随着窗体的变化而相应变化,可以如下实现:在OnSize()函数里添加代码:
 [c-sharp] view plain copyvoid CLControl::OnSize(UINT nType, int cx, int cy)  
{  
    CView::OnSize(nType, cx, cy);  
  
    // TODO: Add your message handler code here  
    Invalidate();  
}  

在OnPaint()函数里添加代码:
[c-sharp] view plain copyvoid CLControl::OnPaint()  
{  
    CPaintDC dc(this); // device context for painting  
    // TODO: Add your message handler code here  
    // Do not call CFormView::OnPaint() for painting messages  
    CRect rec;  
    GetClientRect(&rec);  
    m_LCbutton1.MoveWindow(rec.Width()/4,rec.Height()/4,    rec.Width()/2,rec.Height()/8);  
    m_LCbutton2.MoveWindow(rec.Width()/4,rec.Height()*3/4,  rec.Width()/2,rec.Height()/8);  
}  
 如果你在OnSize()函数里直接使用MoveWindow()函数进行操作,在Release模式下程序可以正常运行(因为不进行所有assert操作),如果在Debug模式下,则会出现如下错误:Debug Assertion Failed! 出错代码部分如下:ASSERT(::IsWindow(m_hWnd)); 之所以出错应该是句柄为null,但解决方法目前不知道。转:http://blog.csdn.net/tulun/article/details/5479664
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐