好友
阅读权限10
听众
最后登录1970-1-1
|
我先创建了一个class CSkinButton : public CButton类
在这个里面创建了几个函数!
void CSkinButton::Init(UINT nNormalID, UINT nMouseOverID, CString strTipText)
{
m_nNormalID = nNormalID;
m_nMouseOverID = nMouseOverID;
m_ToolTip.UpdateTipText(strTipText, this, TIP_ID);
pWndParent=this->GetParent();
AdjustPosition();//调整按钮大小
m_bMouseOver=FALSE;
InvalIDAte();
}
void CSkinButton::AdjustPosition()
{
//此时按钮的RECT的LEFT和TOP参数已经在CMYPLAYER的InitButton函数中初始化过了
CBitmap bitmap;
BITMAP m_Bitmap;
CRect rect;
bitmap.LoadBitmap(m_nNormalID);
bitmap.GetBitmap(&m_Bitmap);
GetWindowRect(&rect);//根据图象的大小调整按钮大小
pWndParent->ScreenToClient(&rect);
rect.right=rect.left+m_Bitmap.bmWidth;
rect.bottom=rect.top+m_Bitmap.bmHeight;
MoveWindow(&rect,TRUE);
}
当然还有几个不重要的!
然后重点
void CSkinButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
UINT nID;
CDC*pDC;
pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
UINT nState=lpDrawItemStruct->itemState;
//判断舒服按有没有在按钮上
if(m_bMouseOver&&(!(nState & ODS_SELECTED)))
nID=m_nMouseOverID;
else
nID=m_nNormalID;
CBitmap bitmap;
BITMAP m_Bitmap;
CDC MemDC;
bitmap.LoadBitmap(nID);
MemDC.CreateCompatibleDC(pDC);
MemDC.SelectObject(&bitmap);
bitmap.GetBitmap(&m_Bitmap);
pDC->BitBlt(0,0,m_Bitmap.bmWidth,m_Bitmap.bmHeight,&MemDC,0,0,SRCCOPY);
bitmap.DeleteObject();
MemDC.DeleteDC();
}
然后我在
BOOL CMyPlayerDlg::OnInitDialog()这个函数里面添加了InitButtons();这个函数
可是我的自绘按钮却一直显示不出来问题出在哪里了各位高手指点下
我要做的是哪个关闭按钮 左上角那个!
鼠标停上面也是一样没有效果!
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|