16,473
社区成员
发帖
与我相关
我的任务
分享
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
CStatic tupian;
CStatic sheng;
CStatic caiyoudao;
CBrush brush;
CFont font;
virtual HBRUSH OnCtlColor(CDC*,CWnd*,UINT);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
CMainWindow::CMainWindow ()
{
CFrameWnd::Create (0,L"");
CRect r;
GetClientRect (r);
tupian.Create (L"",WS_CHILD | WS_VISIBLE | SS_BITMAP ,r,this,IDC_BEIJINGTUPIAN); //这里放置了一个背景图片,这个控件和图片经过计算正好覆盖全部客户区
CBitmap b;
b.LoadBitmapW (IDB_BITMAP1);
tupian .SetBitmap ( (HBITMAP)b );
b.Detach ();
font.CreatePointFont (320,L"华文行楷");
r.left =100;r.top =100;r.bottom =200;r.right =200;
sheng.Create (L"生",WS_CHILD |WS_VISIBLE | SS_CENTER,r,this,IDC_SHENG);//这里放了个字,要用做标题
brush.CreateSolidBrush (RGB(255,255,0));
}
HBRUSH CMainWindow::OnCtlColor (CDC * pDC,CWnd * pWnd,UINT nCtlColor)
{
if ( sheng.m_hWnd == pWnd->m_hWnd )
{
pDC->SetTextColor (RGB(255,0,0));
pDC->SetBkMode (TRANSPARENT); //有没有这句,运行效果都一样。现在需要这里变为透明,不能挡住图片
pDC->SelectObject (&font);
return brush; //这里返回的画刷是给主窗口,还是 CStatic
}
return CFrameWnd::OnCtlColor (pDC,pWnd,nCtlColor);
}