关于窗口拖动时用DrawDragRect 画虚边框的用法请教
各位高手,
最近本人做了一个程序的界面,因为这个界面是异形的,所以属性就是NONE的了
必须自己通过处理实现拉伸,并希望其拉伸的时候呈现放大缩小的虚框效果。
现在,拉伸效果已经实现,但是,点击鼠标拖拉的时候,虚框的位置就是不对
而且,当松开鼠标后,虚框的线条无法自动擦除……
本人目前用如下代码,但无奈效果不佳:
//如下,此函数当鼠标点击按下时候进行调用,//但是虚框的位置不对……//至于松开的时候如何去除虚框本人还不明确void CTestDlg::DrawMoveRect(int xx1,int yy1){ HDC hDC; hDC = ::GetDC(NULL); //取得全屏幕设备描述句柄 CDC * pDC = CDC::FromHandle(hDC); CRect rtClient; GetWindowRect(&rtClient); //rtClient.left = xx1; //rtClient.right= rtClient.left+ rtClient.Width();//宽度是 200 //rtClient.top = yy1; //rtClient.bottom=rtClient.top + rtClient.Height(); if (pDC) { int oldrop; oldrop = pDC->SetROP2(R2_XORPEN); pDC->DrawDragRect(rtClient, CSize(1,1), m_oldRect, CSize(1,1)); //size 是 边框的宽 pDC->SetROP2(oldrop); //恢复原来作图方式 } m_oldRect.CopyRect(rtClient); ::ReleaseDC(NULL, hDC);}