MFC切换图片会有闪烁

MFC切换图片会有闪烁,第1张

第一种方法:

MFC中,应用CBitmapButton就可以实现图形按钮。CBitmapButton类继承自CButton类。你可以为图形按钮指定四张,分别对应按钮的四种不同状态:

正常显示(Up),鼠标按下(Down),获得焦点(Focused),不可用(Disabled)。

正常显示(Up)状态的是必须的,其他三张是可选的。

还有,按钮的Style必须指定为BS_OWNERDRAW。

第二种方法:GDI+中贴图的技术

stdafxh:

#include <gdiplush>

using namespace

Gdiplus;

#pragma comment( lib, "gdipluslib"

)

TestButtonPngh:

protected:

GdiplusStartupInput

m_gdiplusStartupInput;

ULONG_PTR gdiplusToken;

public:

virtual int

ExitInstance();

TestButtonPngcpp:

BOOL

CTestButtonPngApp::InitInstance()

{

GdiplusStartupInput

gdiplusStartupInput;

GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL);

INITCOMMONCONTROLSEX

InitCtrls;

InitCtrlsdwSize = sizeof(InitCtrls);

//

将它设置为包括所有要在应用程序中使用的

// 公共控件类。

InitCtrlsdwICC =

ICC_WIN95_CLASSES;

InitCommonControlsEx(&InitCtrls);

CWinApp::InitInstance();

AfxEnableControlContainer();

}

int

CTestButtonPngApp::ExitInstance()

{

// TODO:

在此添加专用代码和/或调用基类

GdiplusShutdown(gdiplusToken);

return

CWinApp::ExitInstance();

}

BOOL CMyButton::LoadStpImage(LPCWSTR normal, LPCTSTR mask, LPCTSTR

pType)

{

m_pStdImage = new CGdiPlusBitmapResource;

bool ret =

m_pStdImage->LoadFromFile(normal);//,

pType);

m_bMaskDeleteObject();

if(mask != "")

{

HBITMAP

hBitmap=

(HBITMAP)::LoadImage(NULL,mask,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);

if

(hBitmap == NULL)

{

return

FALSE;

}

m_bMaskAttach(hBitmap);

if (hClipRgn)

DeleteObject(hClipRgn);

hClipRgn = CreateRgnFromBitmap(m_bMask,

RGB(255,255,255));

if (hClipRgn)

{

SetWindowRgn(hClipRgn,

TRUE);

SelectClipRgn((HDC)GetDC(),hClipRgn);

SetWindowPos(NULL,0,0,GetBitmapWidth(m_bMask),GetBitmapHeight(m_bMask),SWP_NOZORDER|SWP_NOMOVE);//设置按钮大小

}

}

return

ret;

}

调用的时候这样写

CString nomp;//png路径

CString

headp;//bmp路径

LPCWSTR pChar = 0;

USES_CONVERSION;

pChar =

A2CW((LPCSTR)nomp);

m_MyButton->LoadStpImage(pChar, headp,

_T("PNG"));

m_MyButton->ShowWindow(SW_SHOW);

这个,你要看看OnTimer定时器了。

在界面中双击按钮,可以进入编辑状态,在里面些代码。

利用定时器,实现流水灯的控制。

而灯的闪烁状态,可能你就要使用了。每个灯对应2张,闪烁就是不停的切换这两张,达到闪烁效果。切换的时间间隔利用定时器实现。

以上就是关于MFC切换图片会有闪烁全部的内容,包括:MFC切换图片会有闪烁、使MFC界面上有八个灯,流水闪烁,用按钮控制开始结束。本人菜鸟,求 *** 作详细步骤。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10108150.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存