admin 发表于 2012-12-25 18:38:17

[示例]炫彩界面库-模仿360安全卫士8.8

炫彩界面库-模仿360安全卫士8.8
此示例程序使用炫彩界面开发,采用贴图方式实现,控件透明,换肤.

炫彩界面库-模仿360安全卫士8.8 v1.6x 版本下载地址
http://pan.baidu.com/s/1hq4625e

源代码在 炫彩界面库下载包中.




软件截图:














admin 发表于 2012-12-25 18:40:46

部分代码:



class CXPage1 : public CXEventMsg//电脑体验
{
public:
        HELEm_hEle;
        HELEm_hPane_right;
        HELEm_hBtn_all_opened;//实时防护已开启

        voidCreate();
        voidCreateListView();
        voidCreateRightBottom();

        voidAdjustLayout();
};


//查杀木马
class CXPage2 : public CXEventMsg
{
public:
        HELEm_hEle;
        voidCreate();
        voidAdjustLayout();
};

//漏洞扫描
class CXPage3 : public CXEventMsg
{
public:
        HELEm_hEle;
        HELEm_hList;
        HELEm_hRichEdit;

        voidCreate();
        voidAdjustLayout();
};

//电脑清理
class CXPage5 : public CXEventMsg
{
public:
        HELEm_hEle;

        voidCreate();
        voidAdjustLayout();
};

//功能大全
class CXPage9 : public CXEventMsg
{
public:
        HELEm_hEle;
        HELEm_hListView;
        HELEm_hBottom;

        voidCreate();
        voidAdjustLayout();
};

class CSkinDlg : public CXEventMsg
{
public:
        HWINDOWm_hWindow;
        HELE   m_hListView;

        void Create();
        BOOL OnEventListViewSelect(HELE hEle,HELE hEventEle,int groupIndex,int itemIndex);
        BOOL OnWndKillFocus(HWINDOW hWindow);
};


//主框架
class CMainWnd : public CXEventMsg
{
public:
        HWINDOW m_hWindow; //窗口句柄
       
        HIMAGEm_hThemeBackground; //主题背景图片
        HIMAGEm_hThemeBorder; //主题背景图片
        int   m_SkinIndex;   //当前皮肤 默认为0

        HIMAGEm_hImage_check_leave;
        HIMAGEm_hImage_check_stay;
        HIMAGEm_hImage_check_down;
       
        HELE    m_hBottomText;
        int   m_bottomText_width;

        HELE    m_hBtnClose;
        HELE    m_hBtnMax;
        HELE    m_hBtnMin;
        HELE    m_hBtnMenu;
        HELE    m_hBtnSkin;

        CXPage1   m_page1;
        CXPage2   m_page2;
        CXPage3   m_page3;
        CXPage5   m_page5;
        CXPage9   m_page9;

        BOOL Create(); //创建窗口和按钮

        void CreateToolButtonAndPage();
        HELE CreateToolButton(int x,int y,HIMAGE hIcon,wchar_t *pName);

        void AdjustLayout();
        BOOL OnEventBtnClick_Close(HELE hEle,HELE hEleEvent);
        BOOL OnEventBtnClick_ChangeSkin(HELE hEle,HELE hEleEvent);

};

void CSkinDlg::Create()
{
        int width=380;
        int height=320;

        RECT rect;
        XEle_GetRect(mainWnd.m_hBtnSkin,&rect);

        POINT pt;
        pt.x=rect.right-width;
        pt.y=rect.bottom;

        HWND hMainWnd=XWnd_GetHWnd(mainWnd.m_hWindow);
        ClientToScreen(hMainWnd,&pt);

        m_hWindow=XWnd_CreateWindow(pt.x,pt.y,width,height,L"Skin",hMainWnd,XC_SY_ROUND);
        XWnd_SetRoundSize(m_hWindow,9);

        XWnd_SetImageNC(m_hWindow,mainWnd.m_hThemeBackground);
        XWnd_SetImage(m_hWindow,mainWnd.m_hThemeBorder);

        HELE hPicTitle=XPic_Create(10,10,360,25,m_hWindow);
        XEle_SetBkTransparent(hPicTitle,TRUE);
        XPic_SetImage(hPicTitle,XImage_LoadFile(L"image\\skinDlg\\titleBG.png"));
       
        HELE hStaticTitle=XStatic_Create(10,5,100,20,L"更换皮肤",hPicTitle);
        XEle_SetBkTransparent(hStaticTitle,TRUE);
        XEle_SetTextColor(hStaticTitle,RGB(255,255,255));

        m_hListView=XListView_Create(20,45,350,205,m_hWindow);
        XListView_SetIconSize(m_hListView,97,62);
        XListView_SetItemBorderSpacing(m_hListView,3,3,3,3);
        XListView_SetViewLeftAlign(m_hListView,0);
        XListView_SetViewTopAlign(m_hListView,0);
        XEle_SetTextColor(m_hListView,RGB(255,255,255));
        XEle_EnableBorder(m_hListView,FALSE);
        XEle_SetBkTransparent(m_hListView,TRUE);
        XEle_SetBkTransparent(XSView_GetView(m_hListView),TRUE);

        HXCGUI hImageList=XImageList_Create(97,62);
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin1.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin2.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin3.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin4.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin5.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin6.jpg"));
        XImageList_AddImage(hImageList,XImage_LoadFile(L"image\\skin\\skin7.jpg"));

        XListView_SetImageList(m_hListView,hImageList);
        XListView_AddItem(m_hListView,L"默认皮肤",0);
        XListView_AddItem(m_hListView,L"优雅爵士",1);
        XListView_AddItem(m_hListView,L"神秘星空",2);
        XListView_AddItem(m_hListView,L"粉色之恋",3);
        XListView_AddItem(m_hListView,L"奋斗的小鸟",4);
        XListView_AddItem(m_hListView,L"青青世界",5);
        XListView_AddItem(m_hListView,L"古典木纹",6);
       
        HIMAGEhImageStay=XImage_LoadFile(L"image\\skinDlg\\listView_stay.png");
        HIMAGEhImageSelect=XImage_LoadFile(L"image\\skinDlg\\listView_select.png");
        for (int i=0;i<7;i++)
        {
                XListView_SetItemImageStay(m_hListView,-1,i,hImageStay);
                XListView_SetItemImageSelect(m_hListView,-1,i,hImageSelect);
        }
        XListView_SetSelectItem(m_hListView,-1,mainWnd.m_SkinIndex,TRUE);

        HELE hScrollBar=XSView_GetVScrollBar(m_hListView);
        XEle_SetBkTransparent(hScrollBar,TRUE);
        XSBar_EnableScrollButton2(hScrollBar,FALSE);
        XSBar_SetImageLeaveSlider(hScrollBar,XImage_LoadFileAdaptive(L"image\\skinDlg\\ScrollBar_leave.png",1,14,10,40));
        XSBar_SetImageStaySlider(hScrollBar,XImage_LoadFileAdaptive(L"image\\skinDlg\\ScrollBar_stay.png",1,14,10,40));
        XSBar_SetImageDownSlider(hScrollBar,XImage_LoadFileAdaptive(L"image\\skinDlg\\ScrollBar_stay.png",1,14,10,40));

        XCGUI_RegEleEvent(m_hListView,XE_LISTVIEW_SELECT,&CSkinDlg::OnEventListViewSelect);
        XCGUI_RegWndMessage(m_hWindow,WM_KILLFOCUS,&CSkinDlg::OnWndKillFocus);
        XWnd_ShowWindow(m_hWindow,SW_SHOW);
}

BOOL CSkinDlg::OnEventListViewSelect(HELE hEle,HELE hEventEle,int groupIndex,int itemIndex)
{
        if(itemIndex<0) return FALSE;

        if(mainWnd.m_SkinIndex!=itemIndex) //切换皮肤
        {
                mainWnd.m_SkinIndex=itemIndex;
                switch(itemIndex)
                {
                case 0: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame1.jpg"); break;
                case 1: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame2.jpg"); break;
                case 2: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame3.jpg"); break;
                case 3: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame4.jpg"); break;
                case 4: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame5.jpg"); break;
                case 5: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame6.jpg"); break;
                case 6: mainWnd.m_hThemeBackground=XImage_LoadFile(L"image\\skin\\frame7.jpg"); break;
                }
               
                XImage_SetDrawType(mainWnd.m_hThemeBackground,XC_IMAGE_TILE);

                XWnd_SetImageNC(mainWnd.m_hWindow,mainWnd.m_hThemeBackground);
                XWnd_SetImageNC(m_hWindow,mainWnd.m_hThemeBackground);

                XWnd_RedrawWnd(mainWnd.m_hWindow);
                XWnd_RedrawWnd(m_hWindow);
        }
        return FALSE;
}

BOOL CSkinDlg::OnWndKillFocus(HWINDOW hWindow)
{
        HWND hWnd=XWnd_GetHWnd(m_hWindow);
        ::DestroyWindow(hWnd);
        delete this;
        return TRUE;
}

int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow)
{
        XInitXCGUI();

        if(mainWnd.Create())
        {
                XRunXCGUI();
        }
        return 0;
}



▓_小田纯白 发表于 2012-12-25 18:44:22

下载地址呢:D:lol

admin 发表于 2012-12-25 21:33:25

▓_小田纯白 发表于 2012-12-25 18:44 static/image/common/back.gif
下载地址呢

源代码在 炫彩界面库下载包中.

▓_小田纯白 发表于 2012-12-25 21:36:04

admin 发表于 2012-12-25 21:33 static/image/common/back.gif
源代码在 炫彩界面库下载包中.

嗯,以找到,谢谢

只言·时光 发表于 2012-12-28 16:50:56

下了两个1.5的下载包都没找到!!郁闷啊!:o

admin 发表于 2012-12-28 20:50:37

不会吧, 就是怕你找不到,上面放了张文件夹的截图.

JonyHunter 发表于 2012-12-29 17:07:33

:D很好很强大!炫彩加油!

jackyang 发表于 2012-12-30 11:35:36

学习一下:)

chenfeng 发表于 2012-12-30 11:36:56

很不错呀,主要就是方便 简单 。
页: [1] 2 3 4
查看完整版本: [示例]炫彩界面库-模仿360安全卫士8.8