Class "CStatic"没有成员SetBitmapBits
时间: 2023-07-05 22:16:29 浏览: 44
您好,CStatic类确实没有SetBitmapBits成员函数。SetBitmapBits是属于位图的GDI函数,可以用于将位图的像素数据写入位图对象中。如果您想在CStatic控件上显示位图,可以使用CStatic的SetBitmap函数,该函数接受一个HBITMAP句柄作为参数,您可以使用GDI函数创建一个位图,并将其句柄传递给SetBitmap函数。
相关问题
为什么SetBackColor不是CStatic的成员
SetBackColor 不是 CStatic 的成员,可能是因为 CStatic 类并没有定义 SetBackColor 函数。如果您想要为 CStatic 添加背景颜色,可以考虑使用其他方法,例如在 CStatic 的 OnPaint 函数中实现自定义绘制,或者使用 CStatic 的子类化来创建自己的 CStatic 派生类,并在其中添加 SetBackColor 函数。
m_picCtrl.MoveWindow(m_picCtrl.GetRect() + ptOffset);class "CStatic" 没有成员 "GetRect"
是的,你所提到的问题是正确的,因为 CStatic 类确实没有 GetRect 成员函数。GetRect 函数在 MFC 中是 CWnd 类的成员函数。如果您想获取 CStatic 控件的矩形,则需要使用 CWnd::GetClientRect 或 CWnd::GetWindowRect 成员函数。例如,您可以使用以下代码来获取 m_picCtrl 控件的矩形:
```
CRect rect;
m_picCtrl.GetClientRect(&rect);
m_picCtrl.MoveWindow(rect.left + ptOffset.x, rect.top + ptOffset.y, rect.Width(), rect.Height());
```
或者,如果您想要获取窗口相对于屏幕的矩形,则可以使用以下代码:
```
CRect rect;
m_picCtrl.GetWindowRect(&rect);
ScreenToClient(&rect);
m_picCtrl.MoveWindow(rect.left + ptOffset.x, rect.top + ptOffset.y, rect.Width(), rect.Height());
```
这些代码使用了 CWnd::GetClientRect,CWnd::GetWindowRect 和 CWnd::MoveWindow 成员函数来获取和移动 CStatic 控件的位置和大小。