QQ模仿之弹窗ADDFriend事件

大家自己分析吧

QQ模仿之弹窗ADDFriend事件
#pragma once



//演示QQ2009

#define WINDOW_WIDTH   250 //窗口宽度

#define WINDOW_HEIGHT  600 //窗口高度



struct xc_image_res  //图片资源

{

    HIMAGE image_bk;

    HIMAGE hImageLogo;



    HIMAGE close_leave;

    HIMAGE close_stay;

    HIMAGE close_down;



    HIMAGE max_leave;

    HIMAGE max_stay;

    HIMAGE max_down;



    HIMAGE min_leave;

    HIMAGE min_stay;

    HIMAGE min_down;



    HIMAGE weather;



    HIMAGE face_leave;

    HIMAGE face_stay;



    HIMAGE userstate_leave;

    HIMAGE userstate_stay;

    HIMAGE userstate_down;



    HIMAGE button_leave;

    HIMAGE button_stay;

    HIMAGE button_down;



    HIMAGE searchedit;



    HIMAGE search;

    HIMAGE icon1;

    HIMAGE icon2;

    HIMAGE icon3;

    HIMAGE icon7;

    HIMAGE icon8;

    HIMAGE icon9;

    HIMAGE icon10;

    HIMAGE icon11;

    HIMAGE icon15;

    HIMAGE icon16;



    HIMAGE mainMenu_leave;

    HIMAGE mainMenu_stay;



    HIMAGE hideleftpanel_leave;

    HIMAGE hideleftpanel_stay;



    HIMAGE tabLeft_leave;

    HIMAGE tabLeft_stay;

    HIMAGE tabLeft_down;



    HIMAGE leftpane;

    HIMAGE tab1;

    HIMAGE tab2;

    HIMAGE tab3;



    HIMAGE talkLabel_leave;

    HIMAGE talkLabel_stay;

    HIMAGE talkLabel_down;



    HIMAGE talktbico1;

    HIMAGE talktbico2;

    HIMAGE talktbico3;



    HIMAGE imp_shrink;

    HIMAGE imp_expand;

    HIMAGE imp_icon_1;

    HIMAGE imp_icon_2;

    HIMAGE imp_icon_3;

    HIMAGE imp_icon_4;

    HIMAGE imp_icon_5;

    HIMAGE imp_icon_6;



    HIMAGE scroll_thumb_leave;

    HIMAGE scroll_thumb_down;



    HIMAGE scroll_up_leave;

    HIMAGE scroll_up_down;



    HIMAGE scroll_down_leave;

    HIMAGE scroll_down_down;



};



class DemoCPlus : public CXEventMsg

{

public:

    DemoCPlus(void);

    ~DemoCPlus(void);

    void CreateWnd();



    void LoadImageRes();



    void HandleButton_Close(HELE hClose);

    void HandleButton_Max(HELE hMax);

    void HandleButton_Min(HELE hMin);

    void CreateWeatherButton(HWINDOW hWindow);

    void HandleButton_Face(HELE hFace);

    void HandleButton_UserState(HELE hUserState);

    void HandleButton_UserSign(HELE hUserSign);

    void HandleEdit_Search(HELE hSearch);

    HELE CreateToolButton(HWINDOW hWindow,int x,int y,int cx,int cy);

    HELE CreateToolSearchButton(HWINDOW hWindow);

    void HandleCreateToolButton(HWINDOW hWindow);

    void HandleCreateMainMenuButton(HWINDOW hWindow);

    HELE HandleCreateLeftPaneButton(HELE hPic,int x,int y,int cx,int cy);

    void HandleCreateLeftPane(HWINDOW hWindow);

    void HandleCreateMainTab(HWINDOW hWindow);



    HMENUX CreatePlayerCombox();



    bool OnWndNCEndDrawWindow(HWINDOW hWindow,HDC hdc);

    bool OnWndSize(HWINDOW hWindow,UINT flags,SIZE *pSize);

    bool OnWndDestroy(HWINDOW hWindow) ;

    bool OnFriendsLButtonUp(HELE hEle, POINT *pPt) ;

    bool OnFriendsRButtonUp(HELE hEle, POINT *pPt) ;



    bool EleRButtonDown(HELE hEle,UINT flags,POINT *pPt);



    BOOL My_MenuSelect(HWINDOW hWindow,int id);  //菜单选择



private:

    xc_image_res image_res;

    HWINDOW hWindow;

    HELE hWeather;

    HELE hUserSign;

    HELE hButtonSkin;

    HELE hButtonMsg;

    HELE hTree;

    HELE hTabBar;

    HELE hButtonHidePane;

    HELE hButtonMainMenu;

    HELE hButtonTool1;

    HELE hButtonTool2;

    HELE hButtonTool3;

    HELE hButtonTool4;

    HELE hButtonTool5;

    HELE hButtonTool6;

    HELE hLeftPane;

    HELE hSearchEdit;

    HELE hComboBox;

    HMENUX hMenu;

    int m_CurFriID;

    int group1;

    int group2;

};
View Code
QQ模仿之弹窗ADDFriend事件
#include "stdafx.h"

#include "DemoCPlus.h"



DemoCPlus::DemoCPlus(void)

{

    hMenu = NULL;

    m_CurFriID = -1;

}



DemoCPlus::~DemoCPlus(void)

{

}



void DemoCPlus::LoadImageRes()

{

    image_res.image_bk=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/back.bmp",NULL,6,174,123,140);

    image_res.hImageLogo=XImage_LoadZip(L"qqImage.zip",L"qqImage/logo2009.png");



    image_res.close_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/close_leave.png");

    image_res.close_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/close_stay.png");

    image_res.close_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/close_down.png");



    image_res.max_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/max_leave.png");

    image_res.max_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/max_stay.png");

    image_res.max_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/max_down.png");



    image_res.min_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/min_leave.png");

    image_res.min_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/min_stay.png");

    image_res.min_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/min_down.png");



    image_res.weather=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/weather.png");



    image_res.face_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/face_leave.png");

    image_res.face_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/face_stay.png");



    image_res.userstate_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/userstate_leave.png");

    image_res.userstate_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/userstate_stay.png");

    image_res.userstate_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/userstate_down.png");



    image_res.button_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button_leave.png");

    image_res.button_stay=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/button_stay.png",NULL,3,22,3,22);

    image_res.button_down=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/button_down.png",NULL,3,22,3,22);



    image_res.searchedit=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/searchedit.png",NULL,9,13,6,19);



    image_res.search=XImage_LoadZip(L"qqImage.zip",L"qqImage/17.png");



    image_res.icon1=XImage_LoadZip(L"qqImage.zip",L"qqImage/1.png");

    image_res.icon2=XImage_LoadZip(L"qqImage.zip",L"qqImage/2.png");

    image_res.icon3=XImage_LoadZip(L"qqImage.zip",L"qqImage/3.png");

    image_res.icon7=XImage_LoadZip(L"qqImage.zip",L"qqImage/7.png");

    image_res.icon8=XImage_LoadZip(L"qqImage.zip",L"qqImage/8.png");

    image_res.icon9=XImage_LoadZip(L"qqImage.zip",L"qqImage/9.png");

    image_res.icon10=XImage_LoadZip(L"qqImage.zip",L"qqImage/10.png");

    image_res.icon11=XImage_LoadZip(L"qqImage.zip",L"qqImage/11.png");

    image_res.icon15=XImage_LoadZip(L"qqImage.zip",L"qqImage/15.png");

    image_res.icon16=XImage_LoadZip(L"qqImage.zip",L"qqImage/16.png");



    image_res.mainMenu_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/mainMenu.png");

    image_res.mainMenu_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/mainMenu_stay.png");



    image_res.hideleftpanel_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/hideleftpanel_leave.png");

    image_res.hideleftpanel_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/hideleftpanel_stay.png");



    image_res.tabLeft_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/tabLeft_leave.png");

    image_res.tabLeft_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/tabLeft_stay.png");

    image_res.tabLeft_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/button/tabLeft_down.png");



    image_res.leftpane=XImage_LoadZip(L"qqImage.zip",L"qqImage/leftpane.png",0,true);

    image_res.tab1=XImage_LoadZip(L"qqImage.zip",L"qqImage/tab1.png");

    image_res.tab2=XImage_LoadZip(L"qqImage.zip",L"qqImage/tab2.png");

    image_res.tab3=XImage_LoadZip(L"qqImage.zip",L"qqImage/tab3.png");



    image_res.talkLabel_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/talkLabel_leave.png",0,true);

    image_res.talkLabel_stay=XImage_LoadZip(L"qqImage.zip",L"qqImage/talkLabel_stay.png",0,true);

    image_res.talkLabel_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/talkLabel_check.png",0,true);



    image_res.talktbico1=XImage_LoadZip(L"qqImage.zip",L"qqImage/talktbico1.png");

    image_res.talktbico2=XImage_LoadZip(L"qqImage.zip",L"qqImage/talktbico2.png");

    image_res.talktbico3=XImage_LoadZip(L"qqImage.zip",L"qqImage/talktbico3.png");



    image_res.imp_shrink=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_shrink.png");

    image_res.imp_expand=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_expand.png");

    image_res.imp_icon_1=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_1.png");

    image_res.imp_icon_2=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_2.png");

    image_res.imp_icon_3=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_3.png");

    image_res.imp_icon_4=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_4.png");

    image_res.imp_icon_5=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_5.png");

    image_res.imp_icon_6=XImage_LoadZip(L"qqImage.zip",L"qqImage/avatar/imp_icon_6.png");



    image_res.scroll_thumb_leave=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/scroll_thumb_leave.png",NULL,3,11,3,27);

    image_res.scroll_thumb_down=XImage_LoadZipAdaptive(L"qqImage.zip",L"qqImage/scroll_thumb_down.png",NULL,3,11,3,27);



    image_res.scroll_up_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/scroll_up_leave.png");

    image_res.scroll_up_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/scroll_up_Down.png");



    image_res.scroll_down_leave=XImage_LoadZip(L"qqImage.zip",L"qqImage/scroll_down_leave.png");

    image_res.scroll_down_down=XImage_LoadZip(L"qqImage.zip",L"qqImage/scroll_down_down.png");

}



void DemoCPlus::HandleButton_Close( HELE hClose )

{

    XEle_SetBkTransparent(hClose,true);

    XEle_EnableFocus(hClose,false);

    RECT rc={0,1,42,18};

    XEle_SetRect(hClose,&rc);

    XBtn_SetImageLeave(hClose,image_res.close_leave);

    XBtn_SetImageStay(hClose,image_res.close_stay);

    XBtn_SetImageDown(hClose,image_res.close_down);

}



void DemoCPlus::HandleButton_Max( HELE hMax )

{

    XEle_EnableFocus(hMax,false);

    RECT rc={0,1,26,18};

    XEle_SetRect(hMax,&rc);

    XBtn_SetImageLeave(hMax,image_res.max_leave);

    XBtn_SetImageStay(hMax,image_res.max_stay);

    XBtn_SetImageDown(hMax,image_res.max_down);

}



void DemoCPlus::HandleButton_Min( HELE hMin )

{

    XEle_SetBkTransparent(hMin,true);

    XEle_EnableFocus(hMin,false);

    RECT rc={0,1,25,18};

    XEle_SetRect(hMin,&rc);

    XBtn_SetImageLeave(hMin,image_res.min_leave);

    XBtn_SetImageStay(hMin,image_res.min_stay);

    XBtn_SetImageDown(hMin,image_res.min_down);

}



void DemoCPlus::CreateWeatherButton( HWINDOW hWindow )

{

    hWeather=XBtn_Create(WINDOW_WIDTH-38-10,10,38,38,NULL,hWindow);

    XBtn_EnableCursorHand(hWeather,true);

    XEle_SetBkTransparent(hWeather,true);

    XBtn_SetImageLeave(hWeather,image_res.weather);

    XBtn_SetImageStay(hWeather,image_res.weather);

    XBtn_SetImageDown(hWeather,image_res.weather);

}



void DemoCPlus::HandleButton_Face( HELE hFace )

{

    XEle_SetBkTransparent(hFace,true);

    XEle_EnableFocus(hFace,false);

    XBtn_SetImageLeave(hFace,image_res.face_leave);

    XBtn_SetImageStay(hFace,image_res.face_stay);

    XBtn_SetImageDown(hFace,image_res.face_stay);

}



void DemoCPlus::HandleButton_UserState( HELE hUserState )

{

    XEle_SetBkTransparent(hUserState,true);

    XEle_EnableFocus(hUserState,false);

    XBtn_SetImageLeave(hUserState,image_res.userstate_leave);

    XBtn_SetImageStay(hUserState,image_res.userstate_stay);

    XBtn_SetImageDown(hUserState,image_res.userstate_down);

}



void DemoCPlus::HandleButton_UserSign( HELE hUserSign )

{

    XEle_SetBkTransparent(hUserSign,true);

    XEle_EnableFocus(hUserSign,false);

    XBtn_SetTextAlign(hUserSign,DT_SINGLELINE | DT_VCENTER);



    XBtn_SetImageLeave(hUserSign,image_res.button_leave);

    XBtn_SetImageStay(hUserSign,image_res.button_stay);

    XBtn_SetImageDown(hUserSign,image_res.button_down);

}



void DemoCPlus::HandleEdit_Search( HELE hSearch )

{

    XSView_SetSpacing(hSearch,8,5,35,0);

    XEle_EnableBorder(hSearch,false);

    //    XSView_SetImage(hSearch,image_res.searchedit);

    XEdit_SetImageLeave(hSearch,image_res.searchedit);

    XEdit_SetImageStay(hSearch,image_res.searchedit);

}



HELE DemoCPlus::CreateToolButton( HWINDOW hWindow,int x,int y,int cx,int cy )

{

    HELE hButton=XBtn_Create(x,y,cx,cy,NULL,hWindow);

    XEle_SetBkTransparent(hButton,true);

    XEle_EnableFocus(hButton,false);



    XBtn_SetImageLeave(hButton,image_res.button_leave);

    XBtn_SetImageStay(hButton,image_res.button_stay);

    XBtn_SetImageDown(hButton,image_res.button_down);



    return hButton;

}



HELE DemoCPlus::CreateToolSearchButton( HWINDOW hWindow )

{

    hButtonTool6=XBtn_Create(94,WINDOW_HEIGHT-50,60,22,NULL,hWindow);

    XEle_SetBkTransparent(hButtonTool6,true);

    XEle_EnableFocus(hButtonTool6,false);



    XBtn_SetImageLeave(hButtonTool6,image_res.button_leave);

    XBtn_SetImageStay(hButtonTool6,image_res.button_stay);

    XBtn_SetImageDown(hButtonTool6,image_res.button_down);



    XBtn_SetText(hButtonTool6,L"Search");

    XBtn_SetIcon(hButtonTool6,image_res.search);

    return hButtonTool6;

}



void DemoCPlus::HandleCreateToolButton( HWINDOW hWindow )

{

    HELE hButton=CreateToolButton(hWindow,10,52,22,20);

    XBtn_SetIcon(hButton,image_res.icon1);



    hButton=CreateToolButton(hWindow,32,52,22,20);

    XBtn_SetIcon(hButton,image_res.icon2);



    hButton=CreateToolButton(hWindow,54,52,22,20);

    XBtn_SetIcon(hButton,image_res.icon3);

    ////////////////////

    hButtonSkin=CreateToolButton(hWindow,WINDOW_WIDTH-10-22,52,22,20);

    XBtn_SetIcon(hButtonSkin,image_res.icon8);



    hButtonMsg=CreateToolButton(hWindow,WINDOW_WIDTH-10-22-22,52,22,20);

    XBtn_SetIcon(hButtonMsg,image_res.icon7);



    //////////////////////

    hButtonTool1=CreateToolButton(hWindow,50,WINDOW_HEIGHT-73,22,22);

    XBtn_SetIcon(hButtonTool1,image_res.icon9);



    hButtonTool2=CreateToolButton(hWindow,72,WINDOW_HEIGHT-73,22,22);

    XBtn_SetIcon(hButtonTool2,image_res.icon10);



    hButtonTool3=CreateToolButton(hWindow,94,WINDOW_HEIGHT-73,22,22);

    XBtn_SetIcon(hButtonTool3,image_res.icon11);

    /////////////////////////

    hButtonTool4=CreateToolButton(hWindow,50,WINDOW_HEIGHT-50,22,22);

    XBtn_SetIcon(hButtonTool4,image_res.icon15);



    hButtonTool5=CreateToolButton(hWindow,72,WINDOW_HEIGHT-50,22,22);

    XBtn_SetIcon(hButtonTool5,image_res.icon16);



    CreateToolSearchButton(hWindow);

}



void DemoCPlus::HandleCreateMainMenuButton( HWINDOW hWindow )

{

    hButtonMainMenu=XBtn_Create(3,WINDOW_HEIGHT-68,42,42,NULL,hWindow);

    XEle_SetBkTransparent(hButtonMainMenu,true);

    XEle_EnableFocus(hButtonMainMenu,false);

    XBtn_SetImageLeave(hButtonMainMenu,image_res.mainMenu_leave);

    XBtn_SetImageStay(hButtonMainMenu,image_res.mainMenu_stay);

    XBtn_SetImageDown(hButtonMainMenu,image_res.mainMenu_stay);



    //隐藏左侧工具条面板按钮

    hButtonHidePane=XBtn_Create(1,WINDOW_HEIGHT-76,15,15,NULL,hWindow);

    XEle_SetBkTransparent(hButtonHidePane,true);

    XEle_EnableFocus(hButtonHidePane,false);

    XBtn_SetImageLeave(hButtonHidePane,image_res.hideleftpanel_leave);

    XBtn_SetImageStay(hButtonHidePane,image_res.hideleftpanel_stay);

    XBtn_SetImageDown(hButtonHidePane,image_res.hideleftpanel_stay);

}



HELE DemoCPlus::HandleCreateLeftPaneButton( HELE hPic,int x,int y,int cx,int cy )

{

    HELE hButton=XBtn_Create(x,y,cx,cy,NULL,hPic);

    XEle_SetBkTransparent(hButton,true);

    XEle_EnableFocus(hButton,false);



    XBtn_SetImageLeave(hButton,image_res.tabLeft_leave);

    XBtn_SetImageStay(hButton,image_res.tabLeft_stay);

    XBtn_SetImageDown(hButton,image_res.tabLeft_down);

    XBtn_SetImageCheck(hButton,image_res.tabLeft_stay);



    return hButton;

}



void DemoCPlus::HandleCreateLeftPane( HWINDOW hWindow )

{

    hLeftPane=XPic_Create(0,99,33,WINDOW_HEIGHT-99-55-22,hWindow);

    XPic_SetImage(hLeftPane,image_res.leftpane);



    HELE hButton=HandleCreateLeftPaneButton(hLeftPane,0,3,30,30);

    XBtn_SetIcon(hButton,image_res.tab1);

    hButton=HandleCreateLeftPaneButton(hLeftPane,0,33,30,30);

    XBtn_SetIcon(hButton,image_res.tab2);

    hButton=HandleCreateLeftPaneButton(hLeftPane,0,63,30,30);

    XBtn_SetIcon(hButton,image_res.tab3);

}



void DemoCPlus::HandleCreateMainTab( HWINDOW hWindow )

{

    hTabBar=XTabBar_Create(33,99,WINDOW_WIDTH-6-33,30,hWindow);

    XEle_SetBkColor(hTabBar,RGB(255,0,0));

    XTabBar_AddLabel(hTabBar,L"");

    XTabBar_AddLabel(hTabBar,L"");

    XTabBar_AddLabel(hTabBar,L"");

    XTabBar_EnableTile(hTabBar,true);

    /////////////////////////////////////

    HELE hButton=XTabBar_GetLabel(hTabBar,0);

    XEle_EnableFocus(hButton,false);

    XBtn_SetIcon(hButton,image_res.talktbico1);



    XBtn_SetImageLeave(hButton,image_res.talkLabel_leave);

    XBtn_SetImageStay(hButton,image_res.talkLabel_stay);

    XBtn_SetImageDown(hButton,image_res.talkLabel_down);

    XBtn_SetImageCheck(hButton,image_res.talkLabel_down);



    ///////////////////////////////

    hButton=XTabBar_GetLabel(hTabBar,1);

    XEle_EnableFocus(hButton,false);

    XBtn_SetIcon(hButton,image_res.talktbico2);



    XBtn_SetImageLeave(hButton,image_res.talkLabel_leave);

    XBtn_SetImageStay(hButton,image_res.talkLabel_stay);

    XBtn_SetImageDown(hButton,image_res.talkLabel_down);

    XBtn_SetImageCheck(hButton,image_res.talkLabel_down);

    /////////////////////////////////

    hButton=XTabBar_GetLabel(hTabBar,2);

    XEle_EnableFocus(hButton,false);

    XBtn_SetIcon(hButton,image_res.talktbico3);



    XBtn_SetImageLeave(hButton,image_res.talkLabel_leave);

    XBtn_SetImageStay(hButton,image_res.talkLabel_stay);

    XBtn_SetImageDown(hButton,image_res.talkLabel_down);

    XBtn_SetImageCheck(hButton,image_res.talkLabel_down);



    //好友列表

    hTree=XTree_Create(33,129,WINDOW_WIDTH-6-33,WINDOW_HEIGHT-130-55-22,hWindow);

    XTabBar_SetBindEle(hTabBar,0,hTree);

    XSView_SetSpacing(hTree,0,0,0,0);

    XTree_EnableLine(hTree,false);

    XTree_EnableButton(hTree,false);

    XTree_SetIndentation(hTree,0);

    XTree_SetItemHeight(hTree,28);

    XTree_SetSpacingLeft(hTree,10);



    HXCGUI hImageList1=XImageList_Create(11,6);

    XImageList_AddImage(hImageList1,image_res.imp_shrink);

    XImageList_AddImage(hImageList1,image_res.imp_expand);



    XImageList_AddImage(hImageList1,image_res.imp_icon_1);

    XImageList_AddImage(hImageList1,image_res.imp_icon_2);

    XImageList_AddImage(hImageList1,image_res.imp_icon_3);

    XImageList_AddImage(hImageList1,image_res.imp_icon_4);

    XImageList_AddImage(hImageList1,image_res.imp_icon_5);

    XImageList_AddImage(hImageList1,image_res.imp_icon_6);



    XTree_SetImageList(hTree,hImageList1);

    group1=XTree_InsertItem(hTree,L"我的好友[6/9]",XTREE_ROOT,1);

    group2=XTree_InsertItem(hTree,L"同事[6/10]",XTREE_ROOT,1);



    XTree_InsertItem(hTree,L"梦飞",group1,3);

    wchar_t name[100]={0};

    for(int i=0;i<8;i++)

    {

        swprintf(name,L"炫彩好友-%d",i);

        XTree_InsertItem(hTree,name,group1, i%6+2);

    }



    for(int i=0;i<10;i++)

    {

        swprintf(name,L"炫彩好友-%d",i);

        XTree_InsertItem(hTree,name,group2, i%6+2);

    }



    HELE hScrollBar=XSView_GetVScrollBar(hTree);

    XSBar_SetImageLeaveSlider(hScrollBar,image_res.scroll_thumb_leave);

    XSBar_SetImageStaySlider(hScrollBar,image_res.scroll_thumb_leave);

    XSBar_SetImageDownSlider(hScrollBar,image_res.scroll_thumb_down);



    XSBar_SetImageLeaveUp(hScrollBar,image_res.scroll_up_leave);

    XSBar_SetImageStayUp(hScrollBar,image_res.scroll_up_leave);

    XSBar_SetImageDownUp(hScrollBar,image_res.scroll_up_down);



    XSBar_SetImageLeaveDown(hScrollBar,image_res.scroll_down_leave);

    XSBar_SetImageStayDown(hScrollBar,image_res.scroll_down_leave);

    XSBar_SetImageDownDown(hScrollBar,image_res.scroll_down_down);



    XCGUI_RegEleMessage(hTree,XM_MOUSEDBCLICK,&DemoCPlus::OnFriendsLButtonUp);



    XCGUI_RegEleMessage(hTree,XM_RBUTTONDOWN,&DemoCPlus::EleRButtonDown);

}



bool DemoCPlus::OnWndNCEndDrawWindow( HWINDOW hWindow,HDC hdc )

{

    XDraw_HImage(hdc,image_res.hImageLogo,8,3);



    SetBkMode(hdc,TRANSPARENT);

    TextOut(hdc,100,28,L"炫彩界面库",5);



    return false;

}



bool DemoCPlus::OnWndSize( HWINDOW hWindow,UINT flags,SIZE *pSize )

{

    RECT rc={pSize->cx-38-10,10,pSize->cx-10,38};

    XEle_SetRect(hWeather,&rc);



    rc.left=60;

    rc.top=25;

    rc.right=pSize->cx-60;

    rc.bottom=45;

    XEle_SetRect(hUserSign,&rc);



    rc.left=pSize->cx-10-22;

    rc.top=52;

    rc.right=rc.left+22;

    rc.bottom=rc.top+20;

    XEle_SetRect(hButtonSkin,&rc);



    rc.left=pSize->cx-10-22-22;

    rc.top=52;

    rc.right=rc.left+22;

    rc.bottom=rc.top+20;

    XEle_SetRect(hButtonMsg,&rc);



    rc.left=33;

    rc.top=99;

    rc.right=pSize->cx-6;

    rc.bottom=rc.top+30;

    XEle_SetRect(hTabBar,&rc);



    rc.left=33;

    rc.top=129;

    rc.right=pSize->cx-6;

    rc.bottom=pSize->cy-56-22;

    XEle_SetRect(hTree,&rc);



    rc.left=1;

    rc.top=pSize->cy-76;

    rc.right=rc.left+15;

    rc.bottom=rc.top+15;

    XEle_SetRect(hButtonHidePane,&rc);



    rc.left=3;

    rc.top=pSize->cy-68;

    rc.right=rc.left+42;

    rc.bottom=rc.top+42;

    XEle_SetRect(hButtonMainMenu,&rc);



    rc.left=50;

    rc.top=pSize->cy-73;

    rc.right=rc.left+22;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool1,&rc);



    rc.left=72;

    rc.top=pSize->cy-73;

    rc.right=rc.left+22;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool2,&rc);



    rc.left=94;

    rc.top=pSize->cy-73;

    rc.right=rc.left+22;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool3,&rc);



    rc.left=50;

    rc.top=pSize->cy-50;

    rc.right=rc.left+22;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool4,&rc);



    rc.left=72;

    rc.top=pSize->cy-50;

    rc.right=rc.left+22;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool5,&rc);



    rc.left=94;

    rc.top=pSize->cy-50;

    rc.right=rc.left+60;

    rc.bottom=rc.top+22;

    XEle_SetRect(hButtonTool6,&rc);



    rc.left=0;

    rc.top=99;

    rc.right=33;

    rc.bottom=pSize->cy-55-22;

    XEle_SetRect(hLeftPane,&rc);



    rc.left=1;

    rc.top=73;

    rc.right=pSize->cx-8;

    rc.bottom=rc.top+26;

    XEle_SetRect(hSearchEdit,&rc);

    return false;

}



bool DemoCPlus::OnWndDestroy( HWINDOW hWindow )

{

    if(image_res.hImageLogo)

        XImage_Destroy(image_res.hImageLogo);

    return false;

}



bool DemoCPlus::OnFriendsLButtonUp( HELE hEle, POINT *pPt )

{

    int id=XTree_HitTest(hEle,pPt);

    if(group1==id || group2==id)

    {

        if(XTree_IsExpand(hEle,id))

        {

            XTree_SetItemImage(hTree,id,0);

            XTree_Expand(hEle,id,false);

        }

        else

        {

            XTree_SetItemImage(hTree,id,1);

            XTree_Expand(hEle,id,true);

        }

    }

    else

    {

        wchar_t* lpText = XTree_GetItemText(hTree,id);

        MessageBox(0,lpText,0,0);

    }

    return false;

}



void DemoCPlus::CreateWnd()

{

    int style=XC_SY_DEFAULT&~XC_SY_DRAW_CAPTION_ICON;

    style&=~XC_SY_DRAW_CAPTION_TITLE;

    //创建窗口

    hWindow = XWnd_CreateWindow(0,0,WINDOW_WIDTH,WINDOW_HEIGHT,L"炫彩界面库-窗口",NULL,style);

    XWnd_EnableDragWindow(hWindow,true);

    XWnd_SetBorderSize(hWindow,3,3,3,3);

    XWnd_SetRoundSize(hWindow,9);

    XWnd_SetCaptionHeight(hWindow,22);

    XWnd_SetMinWidth(hWindow,250);

    XWnd_SetMinHeight(hWindow,300);



    XWnd_EnableBorderStrokeInner(hWindow,false);

    XWnd_EnableBorderStrokeOuter(hWindow,false);



    LoadImageRes(); //加载图片资源



    //窗口背景图片

    XWnd_SetImageNC(hWindow,image_res.image_bk);



    //关闭按钮

    HELE hClose=XWnd_GetButtonClose(hWindow);

    HandleButton_Close(hClose);



    //最大化按钮

    HELE hMax=XWnd_GetButtonMax(hWindow);

    HandleButton_Max(hMax);



    //最小化按钮

    HELE hMin=XWnd_GetButtonMin(hWindow);

    HandleButton_Min(hMin);



    //天气

    CreateWeatherButton(hWindow);



    //头像

    HELE hFace=XBtn_Create(10,0,48,48,NULL,hWindow);

    XBtn_EnableCursorHand(hFace,true);

    HandleButton_Face(hFace);



    //状态

    HELE hUserState=XBtn_Create(60,0,32,22,NULL,hWindow);

    HandleButton_UserState(hUserState);



    //签名

    hUserSign=XBtn_Create(60,25,WINDOW_WIDTH-60-62,20,L"签名:www.xcgui.com",hWindow);

    HandleButton_UserSign(hUserSign);



    //搜索框

    hSearchEdit=XEdit_Create(1,73,WINDOW_WIDTH-8,26,hWindow);

    HandleEdit_Search(hSearchEdit);



    //创建工具按钮

    HandleCreateToolButton(hWindow);



    //主菜单按钮

    HandleCreateMainMenuButton(hWindow);



    //创建左边工具面板

    HandleCreateLeftPane(hWindow);



    //tab页

    HandleCreateMainTab(hWindow);



    hMenu = CreatePlayerCombox();



    XWnd_Adjust(hWindow);



    //XCGUI_RegWndNCMessage(hWindow,XWM_NCENDPAINT,&DemoCPlus::OnWndNCEndDrawWindow);

    //XCGUI_RegWndMessage(hWindow,WM_SIZE,&DemoCPlus::OnWndSize);

    //XCGUI_RegWndMessage(hWindow,WM_DESTROY,&DemoCPlus::OnWndDestroy);



    XCGUI_RegWndMessage(hWindow, XWM_MENUSELECT, &DemoCPlus::My_MenuSelect);

    

    XWnd_ShowWindow(hWindow,SW_SHOW);

}



bool DemoCPlus::EleRButtonDown( HELE hEle,UINT flags,POINT *pPt )

{

    int id = XTree_HitTest(hEle,pPt);



    if(group1!= id && group2 != id)

    {

         POINT pt=*pPt;

         RECT rc;

         XListBox_GetItemRect(hEle,1,&rc);



        XEle_PointToNCWnd(hEle,&pt);



        HWINDOW hWindow = XEle_GetHWindow(hEle);

        ClientToScreen(XWnd_GetHWnd(hWindow),&pt);



        m_CurFriID = id;



        XMenu_Popup(hMenu,XWnd_GetHWnd(hWindow),pt.x,pt.y);

    }

    return false;

}



HMENUX DemoCPlus::CreatePlayerCombox()

{

    HMENUX hMenu = XMenu_Create();

    XMenu_AddItem(hMenu,201,L"添加");

    XMenu_AddItem(hMenu,202,L"重命名");

    XMenu_AddItem(hMenu,203,L"删除");

    XMenu_SetAutoDestroy(hMenu, false);

    return hMenu;

}



BOOL DemoCPlus::My_MenuSelect( HWINDOW hWindow,int id )

{

    wchar_t lID[10];

    wsprintf(lID, L"item%d",id);

    

    if (201 == id)

    {

        wchar_t* lpCurPlayer = XTree_GetItemText(hTree,m_CurFriID);

        if(NULL != lpCurPlayer)

        {

            XTree_InsertItem(hTree,lpCurPlayer,group2);

        }

    }



    return false;

}



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

{

    XInitXCGUI();



    DemoCPlus lDemo;

    lDemo.CreateWnd();



    XRunXCGUI();

    return 0;

}
View Code

里面用了调试预先知道的结果,如何智能判断弹窗ID是下一步需要解决的问题!

不过已经能向指定地方加好友啦!多么好玩啊!

你可能感兴趣的:(add)