- Code/Resource
- Windows Develop
- Linux-Unix program
- Internet-Socket-Network
- Web Server
- Browser Client
- Ftp Server
- Ftp Client
- Browser Plugins
- Proxy Server
- Email Server
- Email Client
- WEB Mail
- Firewall-Security
- Telnet Server
- Telnet Client
- ICQ-IM-Chat
- Search Engine
- Sniffer Package capture
- Remote Control
- xml-soap-webservice
- P2P
- WEB(ASP,PHP,...)
- TCP/IP Stack
- SNMP
- Grid Computing
- SilverLight
- DNS
- Cluster Service
- Network Security
- Communication-Mobile
- Game Program
- Editor
- Multimedia program
- Graph program
- Compiler program
- Compress-Decompress algrithms
- Crypt_Decrypt algrithms
- Mathimatics-Numerical algorithms
- MultiLanguage
- Disk/Storage
- Java Develop
- assembly language
- Applications
- Other systems
- Database system
- Embeded-SCM Develop
- FlashMX/Flex
- source in ebook
- Delphi VCL
- OS Develop
- MiddleWare
- MPI
- MacOS develop
- LabView
- ELanguage
- Software/Tools
- E-Books
- Artical/Document
SPINCUBE.H
Package: MSDN_VC98.zip [view]
Upload User: bangxh
Upload Date: 2007-01-31
Package Size: 42235k
Code Size: 5k
Category:
Windows Develop
Development Platform:
Visual C++
- /******************************************************************************
- *
- * SPINCUBE.H
- *
- ******************************************************************************/
- #include <custcntl.h>
- /******************************************************************************
- * SYMBOLIC CONSTANTS
- ******************************************************************************/
- #define SPINCUBECLASS "Spincube"
- #define SPINCUBEDESCRIPTION "An animated control"
- #define SPINCUBEDEFAULTTEXT ":-)"
- #define CCHSTYLE 20 // size of style string, i.e. "SS_ERASE"
- #define NUM_SPINCUBE_STYLES 2
- #define SS_ERASE 0x0001 // spincube window styles
- #define SS_INMOTION 0x0002
- #define SPINCUBE_EXTRA 4 // number of extra bytes for spincube class
- #define SPIN_EVENT 1 // timer event id to repaint control
- #ifdef _ALPHA_
- #define SPIN_INTERVAL 0 // milliseconds between repaints. what
- // would be really cool is a way to
- // dynamically adjust the interval-
- // on real fast machines we might
- // almost be able to get decent-looking
- // animation! :)
- #else
- #define SPIN_INTERVAL 75 // milliseconds between repaints. what
- // would be really cool is a way to
- // dynamically adjust the interval-
- // on real fast machines we might
- // almost be able to get decent-looking
- // animation! :)
- #endif
- #define DID_ERASE 101 // dialog control id's
- #define DID_INMOTION 102
- #define DID_OK 103
- #define GWL_SPINCUBEDATA 0 // offset of control's instance data
- #define SPINCUBE_REPAINT_BKGND 0x00000001
- #define DO_ERASE(hwnd) GetWindowLong(hwnd,GWL_STYLE) & SS_ERASE
- ? TRUE : FALSE
- #define IN_MOTION(hwnd) GetWindowLong(hwnd,GWL_STYLE) & SS_INMOTION
- ? TRUE : FALSE
- #define REPAINT_BKGND(pSCI) pSCI->iOptions&SPINCUBE_REPAINT_BKGND
- ? TRUE : FALSE
- #define IDS_REGCLASSFAIL 16
- #define IDS_UNREGFAIL 17
- #define IDS_DLGBOXFAIL 18
- #define IDS_ALLOCFAIL 19
- #define IDS_CREATEDCFAIL 20
- #define IDS_CREATEBITMAPFAIL 21
- /******************************************************************************
- * TYPEDEFs
- ******************************************************************************/
- typedef struct
- {
- HDC hdcCompat; // the DC that will contain our off-screen
- // image
- HBITMAP hbmSave; // Save previous selected bitmap
- HBITMAP hbmCompat; // The bitmap that will contain the actual
- // image, i.e. we will always do our
- // drawing on this bmp & then blt the
- // result to the screen.
- float fCurrentXRotation; // Angle (in radians) to rotate cube about
- float fCurrentYRotation; // x, y, z axis
- float fCurrentZRotation;
- float fCurrentXRotationInc; // Amount to inc rotation angle each
- float fCurrentYRotationInc; // time we repaint (and are in motion)
- float fCurrentZRotationInc;
- int iCurrentXTranslation; // Distance (in pels) to translate cube
- int iCurrentYTranslation;
- int iCurrentZTranslation;
- int iCurrentXTranslationInc; // Amount to inc translation distance each
- int iCurrentYTranslationInc; // time we repaint (and are in motion)
- int iCurrentZTranslationInc;
- RECT rcCubeBoundary; // Bounding rectangle (in 2D) of the last
- // cube drawn. We invalidate only this
- // region when we're doing animation
- // and get the WM_TIMER- it's alot more
- // efficient that invalidating the whole
- // control (there's less screen flashing.
- int iOptions; // Contains the current options for this
- // ctrl, i.e. erase background.
- } SPINCUBEINFO, *PSPINCUBEINFO;
- /******************************************************************************
- * FUNCTION PROTOTYPES
- ******************************************************************************/
- INT CALLBACK SpincubeSizeToText (DWORD, DWORD, HFONT, LPSTR);
- BOOL CALLBACK SpincubeStyle (HWND, LPCCSTYLE);
- LRESULT CALLBACK SpincubeWndProc (HWND, UINT, WPARAM, LPARAM);
- LRESULT CALLBACK SpincubeDlgProc (HWND, UINT, WPARAM, LPARAM);