网络右下角弹出新闻窗口_VC源码.rar
class CNewsWindow
{
public:
CNewsWindow(void);
~CNewsWindow(void);
public:
HWND m_hWnd;
public:
// 设置皮肤(位图资源名称,标题栏文本颜色)
BOOL SetSkin(LPCTSTR lpSkinBitmapName,COLORREF CaptionColor=0x000000);
// 创建窗口
BOOL Create(LPCTSTR lpWindowName,int nWidth=250,int nHeight=180);
BOOL Create(LPCTSTR lpClassName,LPCTSTR lpWindowName,int nWidth,int nHeight);
// 设置新闻标题、内容、链接
BOOL SetNews(LPCTSTR lpNewsTitle,LPCTSTR lpNewsContent,LPCTSTR lpNewsURL);
// 显示窗口
void Show();
// 设置为主窗口,主窗口销毁后会退出消息循环
void SetMainWindow(BOOL bMainWindow=TRUE);
// 设置自动关闭,如果为真,点击链接后窗口自动关闭
void SetAutoClose(BOOL bAutoClose=TRUE);
public:
BOOL IsWindow();
BOOL DestroyWindow();
private:
#define NCT_CLOSE 0
#define NCT_VIEW 1
#define NCT_TITLE 2
#define NCT_CONTENT 3
typedef struct tagNEWSCONTROL
{
CString strText;
int nType;
int x;
int y;
int nWidth;
int nHeight;
RECT Rect;
}NEWSCONTROL, *LPNEWSCONTROL;
private:
LPNEWSCONTROL m_pControls;
int m_nControlCount;
private:
HCURSOR m_hArrowCursor;
HCURSOR m_hHandCursor;
HCURSOR m_hCurCursor;
HICON m_hAppSmallIcon;
HDC m_hSkinDC;
HDC m_hCacheDC;
HBITMAP m_hSkinBitmap;
HBITMAP m_hSkinOldBitmap;
HBITMAP m_hCacheBitmap;
HBITMAP m_hCacheOldBitmap;
HFONT m_hFont;
HFONT m_hBoldFont;
COLORREF m_CaptionColor;
int m_nHoverIndex;
int m_nDownIndex;
BOOL m_bMainWindow;
BOOL m_bAutoClose;
BOOL m_bTracking;
CString m_strURL;
private:
BOOL DrawWindow();
BOOL DrawWindowEx();
void DrawButton(HDC hDC,LPNEWSCONTROL pControl);
void DrawStatic(HDC hDC,LPNEWSCONTROL pControl);
void DrawNineRect(HDC hdcDest,RECT DestRect,RECT SrcRect,RECT NineRect,UINT crTransparent=0xFF00FF);
RECT CreateRect(LONG left,LONG top,LONG right,LONG bottom);
void CreateControl(LPNEWSCONTROL pControl,int nType,int x,int y,int nWidth,int nHeight,CString strText=_T(""));
int ControlFromPoint(POINT pt);
int ControlFromPoint(LPARAM lParam);
void SetCursor(HCURSOR hCursor);
public:
LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnEraseBkgnd(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnPaint(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnMouseMove(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnMouseHover(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnMouseLeave(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnLButtonDown(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnLButtonUp(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnControlClick(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnDestroy(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT OnSetCursor(UINT message, WPARAM wParam, LPARAM lParam);
};
DES代码 含界面 DES代码
// DES.cpp: implementation of the DES class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "codeDlg.h"
#include "DES.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DES::DES()
{
}
DES::~DES()
{
}
// initial permutation IP
const static char IP_Table[64] = {
58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3,
61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7
};
// final permutation IP^-1
const static char IPR_Table[64] = {
40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,
34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25
};
// expansion operation matrix
static const char E_Table[48] = {
32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9,
8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1
};
// 32-bit permutation function P used on the output of the S-boxes
const static char P_Table[32] = {
16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10,
2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25
};
// permuted choice table (key)
const static char PC1_Table[56] = {
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18,
10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36,
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22,
14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4
};
// permuted choice key (table)
const static char PC2_Table[48] = {
14, 17, 11, 2