带 GDI+ 的 MFC TXPBAR
一个适用于 MFC 的带 GDI+ 的 XP 栏,类似于 Apple 的 Dock 栏。
引言
这是一个类似于 Apple Dock 栏的 XP Dock 栏程序。它使用翻转动画效果来切换滚动。
使用代码
步骤 1。 这一步包括加载库“User32.DLL”以获取“UpdateLayeredWindow
”函数。这是一种逐像素透明度。因此,我们不再有锯齿边缘。
hFuncInst = LoadLibrary("User32.DLL"); BOOL bRet=FALSE; if(hFuncInst){ UpdateLayeredWindow=(MYFUNC)GetProcAddress(hFuncInst, "UpdateLayeredWindow"); } else { AfxMessageBox("User32.dll ERROR!"); exit(0); }
步骤 2。 初始化 GDI+。
m_Blend.BlendOp=0; //the only BlendOp defined in Windows2000 m_Blend.BlendFlags=0; //nothing else isspecial... m_Blend.AlphaFormat=1; m_Blend.SourceConstantAlpha=255;//AC_SRC_ALPHA
步骤 3。现在,是 DrawTXBar
函数。
void DrawTXBar() { DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE); if((dwExStyle&0x80000)!=0x80000) SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^0x80000); BOOL bRet=FALSE; bRet= UpdateLayeredWindow( m_hWnd,hdcScreen,&ptWinPos, &sizeWindow,m_hdcMemory,&ptSrc,0,&m_Blend,2); //UpdateLayeredWindow" must By execute //one hypo- one to Update the alpha window's Image. ... }
关注点
必须执行 API 函数“UpdateLayeredWindow
”才能更新 Alpha 窗口的图像。