问题一 关于MFC界面,怎么删除一张我绘在界面的图片
问题描述:
1 在一个函数里,我调用了如下代码完成了绘图。
CBitmap m_smielBmp;
m_smielBmp.LoadBitmap(IDB_BITMAP_SMILE);//加载图片 CDC dcMem;
dcMem.CreateCompatibleDC(pDc);
dcMem.SelectObject(&m_smielBmp);
pDc->BitBlt(rect.left ,rect.top,20,20,&dcMem,0,0,SRCCOPY);//其中rect为CRect对象
2 图绘制后,在另一个函数里我想删除这个图片怎么做到?描述 1中的 rect为已知问题二 关于自定义Windows消息及响应函数
1 有一个父窗口类ParentWnd,有一个自定义类Server,自定义类Server中有一个Listen()方法
2 类ParentWnd私有一个私有成员变量Server m_server
3 #define WM_SOCKET WM_USER+20
4 我想让ParentWnd将WM_SOCKET消息给m_server.Listen()处理,有办法做到么?如果Listen是类ParentWnd自己的方法,那个我会;现在麻烦在,我将Listen封装进了一个我自定义的类里,如何让一个我自定义类的方法来对窗口的消息进行响应?
问题描述:
1 在一个函数里,我调用了如下代码完成了绘图。
CBitmap m_smielBmp;
m_smielBmp.LoadBitmap(IDB_BITMAP_SMILE);//加载图片 CDC dcMem;
dcMem.CreateCompatibleDC(pDc);
dcMem.SelectObject(&m_smielBmp);
pDc->BitBlt(rect.left ,rect.top,20,20,&dcMem,0,0,SRCCOPY);//其中rect为CRect对象
2 图绘制后,在另一个函数里我想删除这个图片怎么做到?描述 1中的 rect为已知问题二 关于自定义Windows消息及响应函数
1 有一个父窗口类ParentWnd,有一个自定义类Server,自定义类Server中有一个Listen()方法
2 类ParentWnd私有一个私有成员变量Server m_server
3 #define WM_SOCKET WM_USER+20
4 我想让ParentWnd将WM_SOCKET消息给m_server.Listen()处理,有办法做到么?如果Listen是类ParentWnd自己的方法,那个我会;现在麻烦在,我将Listen封装进了一个我自定义的类里,如何让一个我自定义类的方法来对窗口的消息进行响应?
那么你在
CBitmap m_smileBmp;作为一个成员
BOOL m_bDeleted;
OnPaint()
{
CClientDC dc(this);
if ( m_bDelete )
{
CRect rc;
GetClientRect(rc);
dc.FillRect(rc, CBrush* pBrush// 背景画刷);
}
else
{
CDC dcMem;
dcMem.CreateCompatibleDC(pDc);
dcMem.SelectObject(&m_smielBmp);
pDc->BitBlt(rect.left, rect.top, 20, 20,&dcMem,0,0,SRCCOPY);
}
}执行删除操作
OnDelete()
{
m_bDelete = TRUE;
Invalidate();// 或者InvalidateRect();
}2.将WM_SOCKET消息发送个这个ParentWnd
在ParentWnd窗口类中处理这个消息
头文件添加响应函数
afx LRESULT ProcessWmSocketMsg(WPARAM wParam, LPARAM);源文件处理消息映射
BEGIN_MESSAGE_MAP()
ON_MESSAGE(WM_SOCKET, &CXX::ProcessWmSocketMsg)
END_MESSAGE_MAP()LRESULT CXX::ProcessWmSocketMsg(WPARAM wParam, LPARAM lParam)
{
m_server.Listen();
return TRUE;
}
2,在消息响应函数定义你封装listen的类对象,再调用listen方法