我想要找到一个static 控件所在的矩形范围~
把矩形染成紫色。
如下:
CClientDC dc(this);
CBrush a;
a.CreatSolidBrush(RGB(255,0,255));
Crect rect;
CStatic *p=(CStatic*)GetDlgItem(IDB_STATIC1); //IDC_STATIC1为对话框里的一个控件
p->GetClientRect(&rect);
dc.FillRect(rect,&a);以上代码编译通过了,矩形也被染成了紫色~
但是所求的矩形不是static1的矩形的位置!!
位置不对啊~~~怎么解决呢??
请大家给出代码 帮帮我。谢谢~在线等................
把矩形染成紫色。
如下:
CClientDC dc(this);
CBrush a;
a.CreatSolidBrush(RGB(255,0,255));
Crect rect;
CStatic *p=(CStatic*)GetDlgItem(IDB_STATIC1); //IDC_STATIC1为对话框里的一个控件
p->GetClientRect(&rect);
dc.FillRect(rect,&a);以上代码编译通过了,矩形也被染成了紫色~
但是所求的矩形不是static1的矩形的位置!!
位置不对啊~~~怎么解决呢??
请大家给出代码 帮帮我。谢谢~在线等................
解决方案 »
- 初学VC的几个问题
- VC.NET 2003大家用过没有,和VC.NET、VC6相比较如何?
- DCOM中如何知道客户端还在连接状态
- 急!请问用什么软件打开.mws格式的文件?
- ado的问题!VT_DECIMAL的类型如何转成duoble,或float?
- CHAIN_MSG_MAP 怎么会把其它消息给屏蔽掉了
- c++调用C函数
- 在输入一个类的实例后加一个点后,为什么有时刽显示这个类的成员函数及成员变量,有时却不会?
- 超级姐霸为什么?
- libtiff处理
- vc中的如何将整型转化为字符型???
- 我在对话框中添加一个Edit控件,想用ClassWizard添加变量,怎么在列表里面找不到那个新添加的控件 ID?
dc.FillRect(rect,&a);
=>
p->GetClientRect(&rect);
p->ClientToScreen(&rect);
ScreenToClient(&rect);
dc.FillRect(rect,&a);
GetDlgItem(IDB_STATIC1)->GetWindowRect(&rect);
CClientDC dc(p);//取得static控件的DC,否则将在父窗体上操作,static控件覆盖之,看不见了。
CRect rect;
p->GetClientRect(rect);
CBrush a;
a.CreateSolidBrush(RGB(255,0,255));
dc.FillRect(rect,&a);
谢谢你!!
你的方法实现了。很好~~再次感谢!!!
如果是在static控件父窗体上操作,则这样获得矩形范围:
p->GetWindowRect(rect);
this->ScreenToClient(rect);
不过,在OnInitDialog函数中操作dc.FillRect(),似乎没有效果