关于自绘按钮的问题,高手进来帮助一下

snmhm1991 snmhm1991 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我打算在自己自绘一个透明的按钮,用ico图标文件进行自绘。
重载了按钮类的DrawItem()函数,

CBitmap Bmp; //类中定义的
Bmp.LoadBitmapW(IDB_BITMAP1);

void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC* pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
CRect BtnRect=lpDrawItemStruct->rcItem;

//---------------------关于背景----------------------

CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(Bmp);
pDC->BitBlt(0,0,BtnRect.Width(),BtnRect.Height(),&memDC,BtnRect.right,BtnRect.top,SRCCOPY);
//为什么在这里的BtnRect.right与BtnRect.top,不同的按钮取的值都是一样的?????
//而且都是0???


//---------------------------------------------------
::DrawIconEx(lpDrawItemStruct->hDC,0,0,AfxGetApp()->LoadIconW(NormalIcon),IconSize,IconSize,0,NULL,DI_NORMAL);
//在这一句绘制制一个ico的按钮,
}

第一个问题:

为什么在里面绘制了一个ico图标后但是背景不是透明的呢??????可以怎么解决呀????

第二个问题就是上面所问的了

请帮帮我
...全文

相关推荐

VC++ MFC 按钮自绘

自绘按钮类(如xp风格按钮类),发现所有的用了自绘属性的按钮都不能响应键盘"enter"键,这些类实现的按钮只能通过鼠标点击进行操作,在实际开发时通常不符合要求的。 我改进了一下,使其可用键盘操作。

ftp2312

掌握QT框架中的自绘按钮技术

QT是一个跨平台的C++应用程序开发框架,广泛用于开发图形用户界面应用程序以及非GUI程序如命令行工具和服务器。QT框架提供了丰富的控件和工具,使其能够在不同的操作系统(包括Windows、Mac OS X、Linux、Android和iOS等)上创建一致的用户体验。它的核心功能包括但不限于窗口部件、绘图和2D/3D图形、数据库集成、多线程、国际化支持、网络编程和Web服务。在本文中,我们将探索QT框架的基础知识,包括它的模块、工具以及如何在开发过程中搭建环境。

澾慟

Qt实现不规则按钮之自绘圆盘式按钮

一、简述 在上一篇文章中我们讲述了如何实现不规则按钮( Qt简述如何实现不规则按钮),其中提到了另外一种方法就是自绘,今天就此谈一谈如何自绘实现一个圆盘式的按钮。下面先看一张效果图。 二、代码之路 其实实现很简单,就是通过Qt的QPainterPath来实现圆弧式按钮的绘制,然后通过鼠标事件实现点击效果及点击信号的发送。因为正常QPushButton或者QToolButton是自己发

前行中的小猪

自绘按钮(BMP位图版)

用MFC实现的自绘按钮(该版本使用的BMP位图讲解),后续会上传PNG等格式的自绘方式(其实基本一样,只是图片资源的加载不一样)。 【含有详细注释】,有不明白的可以问我。

ccvoid_void

自绘和MFC Push Button一样的按钮

WM_DRAWITEM自绘和MFC Push Button一样的按钮

HisinWang
评论 11
收藏 已收藏
分享
返回顶部
snmhm1991
界面 15,976 成员 115,866 内容