永发信息网

WTL自绘Button,为什么进不去DrawItem函数

答案:2  悬赏:30  手机版
解决时间 2021-02-12 07:00
  • 提问者网友:杀手的诗
  • 2021-02-11 07:52
class CButtonImpl:public CWindowImpl, public COwnerDraw
{
public:
BEGIN_MSG_MAP_EX(CButtonImpl)
MSG_WM_SETCURSOR(OnSetCursor)
MSG_WM_LBUTTONDOWN(OnLButtonDown)
CHAIN_MSG_MAP_ALT(COwnerDraw, 1)
DEFAULT_REFLECTION_HANDLER()

END_MSG_MAP()

void DrawItem(LPDRAWITEMSTRUCT lpdis)
{
CDCHandle dc = lpdis->hDC;
CDC dcMem;
dcMem.CreateCompatibleDC(dc);
dc.SaveDC();
if(lpdis->itemState & ODS_FOCUS)
dc.FillSolidRect(&lpdis->rcItem, RGB(255,0,0));
else
dc.FillSolidRect(&lpdis->rcItem, RGB(0, 0,255));
dcMem.SelectBitmap(img.m_hBitmap);
if(lpdis->itemState & ODS_SELECTED)
dc.BitBlt(1, 1, 80, 80, dcMem, 0, 0, SRCCOPY);
else
dc.BitBlt(0, 0, 80, 80, dcMem, 0, 0, SRCCOPY);
dcMem.RestoreDC(-1);
dcMem.RestoreDC(-1);
}
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-02-11 08:22
按钮的Style上有 BS_OWNERDRAW 吗?
全部回答
  • 1楼网友:鸠书
  • 2021-02-11 09:38
搜一下:WTL自绘Button,为什么进不去DrawItem函数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯