mfc在两个控件间连线

新建一个对话框工程;

    添加2个按钮,ID分别为IDC_ONE、IDC_TWO,再添加一个 GO!按钮;

为 GO!按钮添加单击消息处理函数;

单击代码;

void CTwotwoDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
	CPen pen(PS_DOT, 3, RGB(0, 0, 0));//创建一个画笔
	//CWnd *pwnd = GetDlgItem(IDC_STATIC);//获取画线所在控件
	// CClientDC dc(pwnd);
	CClientDC dc(this);//this表示在当前对话框中
	dc.SelectObject(pen);//选择画笔
	CRect rect1, rect2;
	GetDlgItem(IDC_ONE)->GetWindowRect(&rect1);//获取控件(这里控件ID为IDC_ONE )相对于屏幕的位置
	ScreenToClient(rect1);//转化为对话框上的相对位置
	GetDlgItem(IDC_TWO)->GetWindowRect(&rect2);
	ScreenToClient(rect2);
	dc.MoveTo(rect1.left + (rect1.right - rect1.left) / 2, rect1.top + (rect1.bottom - rect1.top) / 2);//控件1中心点为起始位置
	dc.LineTo(rect2.left + (rect2.right - rect2.left) / 2, rect2.top + (rect2.bottom - rect2.top) / 2);//连接两个控件中心点
}

运行;效果如下;连线是实现了;但效果不是辣么好; 

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/114005250