I tried skin 2.0, 3.0, and.
1. Skin ++ uses different versions, and the. SSK file format is different, so it cannot be mixed. (2. x and 3. X should be the same, but different from 0.1.3)
2. In version 0.1.3, the file name is skinplusplus. H, skinplusplus. Lib, skinplusplus. dll, and SSK.
Key Methods: (1) add files, including. H, including Lib.
(2) Call initializeskin ("DLL/minimized. SSK") in initinstance to initialize the instance.
(3) Call exitskin () in exitinstance to release the resource.
(4) In the change style method, call loadskin (filename );
(5) Remove style, call: removeskin ();
(6) set a control without skin ++ style: setnoskinhwnd (hwnd );
Note: This method only sets the hwnd style, but not the subwindow style.
3. file names after 2.0: skinppwtl. H, skinppwtl. dll, and skinppwtl. Lib. The method is the same, but all member functions add a skinpp before 0.1.3.
4. Note that in vs2005, after Unicode is set, when skin ++ 2.x, 3.x is used,
In the header file,
Set: skinppwtl_api bool skinpploadskin (tchar * szskinfile, bool bfromini = false );
Changed to: skinppwtl_api bool skinpploadskin (char * szskinfile, bool bfromini = false );
5. In vs2005, call loadskin (char * skinfile); when the method is called, it is converted from cstring to char *. The general conversion method cannot be used, and an error is reported. The method is correct:
Char * basicfunction: stringtocharx (cstring Str)
{
Int Len = widechartomultibyte (cp_acp, 0, STR, str. getlength (), null, 0, null, null );
Char * pascii = new char [Len + 1];
Len = widechartomultibyte (cp_acp, 0, STR, str. getlength (), pascii, Len + 1, null, null );
Pascii [Len] = 0;
Return pascii;
}
Doubt:
For a clistctrl control that you have rewritten, it is estimated that it is because of the intrinsic controls below. Therefore, clistctrl-> m_hwnd cannot represent the style of the entire interface. It is not enough to set skin for the clistctrl control. I did not expect a solution.