原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/18032495
由于项目需要做一个类似于QQ新闻的消息弹窗,谷歌一下,有现成的。感谢@泪闯天涯的分享。原版是Win32实现的,我把它改成MFC版,可以在代码中直接使用。
1.开发环境
VS2010/MFC
2.源码说明
保留Win32API实现自绘,支持多种风格。为区分于Win32版,更名为CMsgWindow类,继承于CWnd类。修改的内容主要有:
(1)Create函数中窗口的注册使用AfxRegisterWndClass
(2)用MFC方式处理消息响应:OnPaint,OnEraseBkgnd,OnLButtonUp,OnControlClick,OnLButtonDown,OnMouseLeave,OnMouseMove,OnSetCursor,OnDestroy。
(3)弹窗是非模态对话框,处理了PostNcDestroy函数,调用delete this防止内存泄漏。移除了SetMainWindow函数。
(4)其他Win32函数到MFC函数的转换,主要是处理句柄问题。
3.代码使用
// 创建窗口
BOOL Create(HWND hWndParent,LPCTSTR lpWindowName,int nWidth=250,int nHeight=180);
// 显示窗口
void Show();
// 设置皮肤(位图资源名称,标题栏文本颜色)
BOOL SetSkin(LPCTSTR lpBitmapName,COLORREF CaptionColor=0x000000);
// 设置新闻标题、内容、链接
BOOL SetMsg(LPCTSTR lpNewsTitle,LPCTSTR lpNewsContent,LPCTSTR lpNewsURL="");
// 设置自动关闭,如果为真,点击链接后窗口自动关闭
void SetAutoClose(BOOL bAutoClose);
4.效果图
5.源码下载
源码包含:win32版,MFC版,源码,示例,效果图。
CSDN下载地址:http://download.csdn.net/detail/jackyvincefu/6827375
Github地址:https://github.com/fusijie/Win32-MFC_Popup_Window