The source code execution effect diagram is as follows:
and vckbase contact for a long, is always greedy to dig from the use of Dongdong, but did not think of their own things to share with people, very embarrassed.
Since my rangerchat point to point Chat tool in Vckbase, I have received letters from many friends. Many of them say that looking at so much code at once doesn't really know how to extract what they want from it. Now I have some good resources in the process of doing the project for you to judge. In the future, I will provide some good code and share with you. Thank you.
The first one: a toolbar with a dynamic true color icon, I believe you can add a lot to the application.
STEP1: Build a single document/Multiple document framework
STEP2: Add the following variable to the frame class CMainFrameCReBar m_wndReBar
STEP3: adding bool-member functions Createextoolbar ()
BOOL Cmainframe::createextoolbar ()
{
CImageList img;
CString str;
if (!m_wndrebar.create (this))
{
return-1;
}
if (!m_wndtoolbar.createex (this, Tbstyle_flat, Ws_child | ws_visible | Cbrs_top
| Cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic))
{
return-1;
}
The following code sets the width and length of the button
M_wndtoolbar.gettoolbarctrl (). Setbuttonwidth (40, 80);
The following code is a bitmap that sets "hot"
Img. Create (ilc_color8|, the ilc_mask,2,2);
Img. SetBkColor (:: GetSysColor (Color_btnface));
Img. ADD (AfxGetApp ()->loadicon (Idi_icon_msg_getbutton));//0 Receiving letter
...//Omit the other button settings code, see this article provides the source codes
M_wndtoolbar.gettoolbarctrl (). SetHotImageList (&IMG);
Img. Detach ();
The following code is a bitmap that sets "cold"
Img. Create (ilc_color8|, Ilc_mask, 2,2);
Img. SetBkColor (:: GetSysColor (Color_btnface));
Img. ADD (AfxGetApp ()->loadicon (Idi_icon_msg_getbutton));//0 Receiving letter
Img. ADD (AfxGetApp ()->loadicon (IDI_ICON_MSG_WRITEMSGBTN));//1 Letter
...//Omit the other button settings code, see this article provides the source codes
M_wndtoolbar.gettoolbarctrl (). SetImageList (&IMG);
Img. Detach ();
changing properties
M_wndtoolbar.modifystyle (0, Tbstyle_flat | Cbrs_tooltips | Tbstyle_transparent| Tbbs_checkbox);
M_wndtoolbar.setbuttons (null,21);
Set up each toolbar button sets the text
M_wndtoolbar.setbuttoninfo (0, Idc_writemsg, Tbstyle_button, 1);
M_wndtoolbar.setbuttontext (0, "letter");
...//Omit the other button settings code, see this article provided the source
CRect Recttoolbar;
Get the size of the button
M_wndtoolbar.getitemrect (0, &recttoolbar);
To set the size of a button
M_wndtoolbar.setsizes (Recttoolbar.size (), CSize (20,20));
Add toolbar to Rebar
M_wndrebar.addbar (&m_wndtoolbar);
Change some properties
Rebarbandinfo Rbbi;
rbbi.cbsize = sizeof (Rbbi); This is a must fill
Rbbi.fmask = Rbbim_childsize | Rbbim_idealsize | rbbim_size| Rbbim_background;
Width of the tool bar
Rbbi.cxminchild = Recttoolbar.width ();
Height
Rbbi.cyminchild = Recttoolbar.height ();
The following line of code is to add a background bitmap to the sidebar, please note the RBBIM_BACKGROUND flag in the Rbbi.fmask
Rbbi.hbmback = LoadBitmap (:: AfxGetInstanceHandle (), Makeintresource (Idb_toolbarbkmap));
rbbi.cx = Rbbi.cxideal = Recttoolbar.width () * 10;
M_wndrebar.getrebarctrl (). SetBandInfo (0, &rbbi);
return TRUE;
}
STEP4: Open the OnCreate () member function to add the following code
//创建扩展工具栏
If (!this->CreateExToolBar())
return -1;
and remove all previous operations (create, float) about toolbar.
The True Color Dynamic toolbar has been successfully created!
Here are some instructions:
No1: Each button in the toolbar has to be created manually (see source)
NO2: The ID and message processing for each button is to be added manually (this does not detail the process)
OK, let's try it again.