?? albumdb.h
字號:
//======================================================================
// Header file
//
// Written for the book Programming Windows CE
// Copyright (C) 1998 Douglas Boling
//
//======================================================================
// Returns number of elements
#define dim(x) (sizeof(x) / sizeof(x[0]))
//----------------------------------------------------------------------
// Generic defines and data types
//
struct decodeUINT { // Structure associates
UINT Code; // messages
// with a function.
LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);
};
struct decodeCMD { // Structure associates
UINT Code; // menu IDs with a
LRESULT (*Fxn)(HWND, WORD, HWND, WORD); // function.
};
//----------------------------------------------------------------------
// Generic defines used by application
#define ID_ICON 1 // App icon resource ID
#define IDC_CMDBAR 2 // Command band ID
#define ID_MENU 3 // Main menu resource ID
#define ID_LISTV 5 // List view control ID
// Menu item IDs
#define IDM_DELDB 101 // File menu
#define IDM_EXIT 102
#define IDM_NEW 110 // Album menu
#define IDM_EDIT 111
#define IDM_DELETE 112
#define IDM_SORTNAME 120 // Sort IDs must be
#define IDM_SORTARTIST 121 // consecutive.
#define IDM_SORTCATEGORY 122
#define IDM_ABOUT 150 // Help menu
// IDs for dialog box controls
#define IDD_NAME 100 // Edit album dialog.
#define IDD_ARTIST 101
#define IDD_NUMTRACKS 102
#define IDD_CATEGORY 103
#define IDD_TRACKS 104
#define IDD_NEWTRACK 105
#define IDD_EDITTRACK 106
#define IDD_DELTRACK 107
#define IDD_TRACK 200 // Edit track dialog.
#define IDD_TIME 201
//----------------------------------------------------------------------
// Program-specific structures
//
// Structure used by New/Edit Album dlg proc
#define MAX_NAMELEN 64
#define MAX_ARTISTLEN 64
#define MAX_TRACKNAMELEN 512
typedef struct {
TCHAR szName[MAX_NAMELEN];
TCHAR szArtist[MAX_ARTISTLEN];
INT nDateRel;
SHORT sCategory;
SHORT sNumTracks;
INT nTrackDataLen;
TCHAR szTracks[MAX_TRACKNAMELEN];
} ALBUMINFO, *LPALBUMINFO;
// Structure used by Add/Edit album track
typedef struct {
TCHAR szTrack[64];
TCHAR szTime[16];
} TRACKINFO, *LPTRACKINFO;
// Structure used by GetItemData
typedef struct {
int nItem;
ALBUMINFO Album;
} LVCACHEDATA, *PLVCACHEDATA;
// Database property identifiers
#define PID_NAME MAKELONG (CEVT_LPWSTR, 1)
#define PID_ARTIST MAKELONG (CEVT_LPWSTR, 2)
#define PID_RELDATE MAKELONG (CEVT_I2, 3)
#define PID_CATEGORY MAKELONG (CEVT_I2, 4)
#define PID_NUMTRACKS MAKELONG (CEVT_I2, 5)
#define PID_TRACKS MAKELONG (CEVT_BLOB, 6)
#define NUM_DB_PROPS 6
//----------------------------------------------------------------------
// Function prototypes
//
int InitApp (HINSTANCE);
HWND InitInstance (HINSTANCE, LPWSTR, int);
int TermInstance (HINSTANCE, int);
HANDLE OpenCreateDB (HWND, int *);
void ReopenDatabase (HWND, INT);
int GetItemData (int, PLVCACHEDATA);
HWND CreateLV (HWND, RECT *);
void ClearCache (void);
// Window procedures
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM);
// Message handlers
LRESULT DoCreateMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoSizeMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoCommandMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoNotifyMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoDbNotifyMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);
// Command functions
LPARAM DoMainCommandDelDB (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandExit (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandNew (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandEdit (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandDelete (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandSort (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandAbout (HWND, WORD, HWND, WORD);
// Dialog procedures
BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK EditAlbumDlgProc (HWND, UINT, WPARAM, LPARAM);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -