MFC 如何让滑块的背景变透明

在一个对话框中背景为一张图片,然后在上面拖放了一个滑块SliderControl,但是显示的效果很不好,周围总有个白色的矩形边框(如图),如何将其设置为透明?试过属性里的... 在一个对话框中背景为一张图片,然后在上面拖放了一个滑块Slider Control,但是显示的效果很不好,周围总有个白色的矩形边框(如图),如何将其设置为透明?

试过属性里的Transparent了,也没用
有木有高手指教啊?
展开
 我来答
Unkn0wName
2012-11-03 · TA获得超过106个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:133万
展开全部

CDC *pDC=CDC::FromHandle(::GetDC(/*这里是那个控件的句柄*/));

pDC->SetBkMode(TRANSPARENT);//透明     

::GetStockObject(NULL_BRUSH); 



我这有个函数希望能帮到你

/*****************************************************************

函数名称:yan_se_tou_ming

函数功能:让指定颜色区域变得透明化

函数参数:

        HWND hwnd,窗口句柄

        int tou_ming_de_yan_se,要透明的颜色

        int tou_ming_du=0 透明度,默认为0完全透明

返回值:成功返回TRUE 失败返回FALSE

/***************************************************/

/*****VC6.0需要加入以下代码在前面*************

#define WS_EX_LAYERED 0x00080000

#define LWA_COLORKEY 0x00000001

#define LWA_ALPHA 0x00000002

typedef BOOL (FAR WINAPI *LAYERFUNC)(HWND,COLORREF,BYTE,DWORD);

BOOL SetLayeredWindowAttributes(HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags)

{

        LAYERFUNC SetLayer;

        HMODULE hmod = LoadLibrary("user32.dll");

        SetLayer=(LAYERFUNC)GetProcAddress(hmod,"SetLayeredWindowAttributes");

        BOOL bReturn = SetLayer(hwnd,crKey,bAlpha,dwFlags);

        FreeLibrary(hmod);

        return bReturn;

}

//*********************************************************/

//可以在OnPaint里添加 在OnInitDialog添加这段代码是无效的

BOOL yan_se_tou_ming(HWND hwnd,int tou_ming_de_yan_se,int tou_ming_du=0)

{

        int FengGe=GetWindowLong(hwnd,GWL_EXSTYLE);

        if (FengGe==0)

        {

               return FALSE;

        }

        if (SetWindowLong(hwnd,GWL_EXSTYLE,FengGe|524288)==0)

        {

                return FALSE;

        }

        DWORD flag=0;

        if (tou_ming_du==0)

        {

                flag=LWA_COLORKEY;

        }

        else 

        {

                flag=LWA_ALPHA;

        }

        if (SetLayeredWindowAttributes(hwnd,tou_ming_de_yan_se,tou_ming_du,flag)==0)

        {

                return FALSE;

        }

     return TRUE;

}

xz宏定义
2012-11-01 · TA获得超过1029个赞
知道小有建树答主
回答量:1621
采纳率:100%
帮助的人:228万
展开全部
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十丽证R
2012-10-21 · TA获得超过151个赞
知道答主
回答量:84
采纳率:0%
帮助的人:84.9万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式