Introduction
SkinsSys is a picture-based skin system written in Visual C++/MFC and based on FriendSoft's SkinForm.
Contents
This article (and its downloads) includes the following:
- CSkinsys codes
- Simple Skin Editor
- A beatiful MPEG 1,2,3 decoder (Copyright www.eldos.org - based on the MAPlay Decoder)
- MPEGPlayer project
Download Directories
Once you download and extract the files, you'll see several new folders. Here is what each is used for.
- Decoder: MPEG Decoder codes
- Editor : Skineditor Files
- Sample : Sample Skin Files
- SkinSys: CSkinsys Codes
- Root : MPEGPlayer Project
Requirements
This system only requires the "OleLoadPicture" function (Please see LoadPictureFile function in Skindialog.cpp)
How to Use
Please Read This notes and see Sample Directory and MPEGPlayer project
- Draw mask bitmap
- Draw main Bitmap
- If you need or want
- Draw mouse over bitmap
- Draw mouse down bitmap
- Draw disable bitmap
- Run Skineditor
- Select "Screens" Tab
- Fill All Pictures
- If you want select "Preview" Button
- Save and exit
- Run Visual Studio
- Create a Dialog based new Project (for example Dialog Name = CBaseDialog)
- Include "SkinDialog.h" (for example in "StdAfx.h")
- Change to CBaseDialog : public CDialog to CBaseDialog : public CSkinDialog
- Go to CBaseDialog::OnInitDialog
- Add these lines
char m_skin[512];
sprintf(m_skin, "<Your Skin Name>");
SetMenuID(IDR_MAINMENU);
SetWindowText("MPEG Player");
SetSkinFile(m_skin);
CSkinDialog::OnInitDialog();
- Compile and Run
Controlling Button Clicks, Trackbar, ProgressBar and Text
Here are the protocols for the different events that you might want to handle in the base class (CSkinDialog)...
void ProgresChanged(CString m_Name); void MouseMoved(CString m_ButtonName, int x, int y); void TrackChange(CString m_ButtonName, UINT nSBCode, UINT nPos); void ButtonPressed(CString m_ButtonName);
You can also add any of these functions to your class depending on your needs.
- Changing the tooltip Use one of the Set<xxx>ToolTip functions. Where <xxx> is Button, Text, etc. For example:
SetButtonToolTip("BUTTON_USEEQ", "Equalizer is On");
- Getting Value Use one of the Get<xxx> functions. For example:
BOOL useEQ = GetButtonCheck("BUTTON_USEEQ");
- Setting Value Use one of the Set<xxx> functions. For example:
SetButtonCheck("BUTTON_USEEQ", useEQ);
Additional Notes
Thanks for enterested to CSkinsys. But this is first release. It may have any bug and error. Please report any bug and error or any question to me.
Downloads
Download source and demo - 312 Kb