1.ondraw函数在窗口maximize / minimize 时会被响应(我设置了计数加一),median时不响应。
缩小窗体不会发生重回,只有从小到大,有需要填充新区域时才需要重绘。
2.新建一个编辑框控件(Edit Control),将其多行(Multiline)前面打勾(属性设置为True),Auto HScroll前面的勾去掉(属性设置False),这样就可以实现每一行填满后自动换行了。
3.GetClientRect(rect);//窗体的大小信息在rect中,坐标是以窗体的左上角点为原点的。
GetWindowRect(rect);//坐标是以全屏幕为基准的、
4.窗体可以使用鼠标来拖动边框改变大小,设置border->resizing
5.对比
CRect rect;
GetDlgItem(IDC_BUTTON2)->GetWindowRect(rect);
GetDlgItem(IDC_BUTTON2)->MoveWindow(rect);
GetWindowRect获得是窗体控件左上角点在屏幕上的坐标(屏幕左上点为原点)
MoveWindow是在窗体坐标内给定的坐标。
void CGDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CPoint mpoint;
GetCursorPos(&mpoint);
SetDlgItemInt(IDC_EDIT_ShowX,mpoint.x);
SetDlgItemInt(IDC_EDIT_ShowY,mpoint.y);
CDialogEx::OnMouseMove(nFlags, point);
}
void CGDlg::OnBnClickedButtonDown()
{
CRect rect;
GetDlgItem(IDC_BUTTON2)->GetWindowRect(rect);
ScreenToClient(rect);
rect.top+=10;
rect.bottom+=10;
GetDlgItem(IDC_BUTTON2)->MoveWindow(rect);
}