if (WkRec[i].iType==1)
for (int j=1;j<dwWkCount;j++)
if (WkRec[i].indParent==WkRec[j].ind)
WkRec[i].hTree=TV_InsertItem(WkRec[i].cTrack,
HANDLES.hWndTreeView,WkRec[j].hTree,2,WkRec[i].ind);
}
LV_RemoveAllItems(HANDLES.hWndListView);
// Èíèöèàëèçàöèÿ ñïèñêà ïðè âûáîðå íîâîãî ýëåìåíòà
void MakeList(UINT selDisk)
{
for (int i=0;i<dwWkCount;i++)
if (WkRec[i].indParent==selDisk)
LV_AddItem(HANDLES.hWndListView, 0, WkRec[i].cTrack,&WkRec[i]);
void InitTree()
TV_DeleteAll();
lstrcpy(FileName, "");
dwWkCount=1;
delete []WkRec;
WkRec=new WorkRecord[dwWkCount];
ZeroMemory(WkRec,sizeof(WorkRecord));
HANDLES.iSelDisk=-1;
HANDLES.iSelTrack=-1;
MakeTree();
/* ####################################### */
bool WndProc_OnCreate(HWND hWnd,LPCREATESTRUCT lpCreateStruct)
HANDLES.hWndMain=hWnd;
if (!SB_Create(hWnd))
return FALSE;
if (!TB_Create(hWnd))
if (!LV_Create(hWnd))
if (!TV_Create(hWnd))
InitTree();
ResizeWindows(hWnd);
return TRUE;
return 1;
void WndProc_OnResize(HWND hWnd,int cx, int cy, int cz)
if (!ResizeWindows(hWnd))
MessageBox(NULL, "Window resizing failed!", NULL, MB_OK);
void WndProc_OnDestroy(HWND hWnd)
PostQuitMessage(0);
void Main_OnCommand( HWND hWnd, int iCmd, HWND hwndCtl, UINT uCode )
int wCommand = iCmd;
int iTypeEdit,iNumRec;
GetStateOfCommonControls();
switch(iCmd)
case IDM_FILE_NEW:
iTypeEdit=MessageBox(NULL,"Âû õîòèòå ñîõðàíèòü èçìåíåíèÿ?",
"Ïðåäóïðåæäåíèå",MB_YESNO);
if (iTypeEdit==IDYES)
if (strlen(FileName)==0)
if (!GetFlNameDialog(HANDLES.hWndMain,1))
break;
else
if (!SaveItems(FileName))
MessageBox(NULL,"Îøèáêà ñîõðàíåíèÿ ôàéëà.","Îøèáêà",MB_OK);
case IDM_FILE_OPEN:
if (GetFlNameDialog(HANDLES.hWndMain,0))
if (!LoadItems(FileName))
MessageBox(NULL,"Îøèáêà çàãðóçêè ôàéëà.","Îøèáêà",MB_OK);
else MakeTree();
MessageBox(NULL,"Ôàéë íå âûáðàí.","Îøèáêà",MB_OK);
case IDM_FILE_SAVEAS:
case IDM_FILE_SAVE:
// MessageBox(NULL,"Ôàéë íå âûáðàí.","Îøèáêà",MB_OK);
case IDM_EDIT_ADD:
if (HANDLES.iSelDisk<0)
iNumRec=AddNewItem(0,0);
iTypeEdit=DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_DISK),
hWnd,(DLGPROC)addDiskDlgProc,
(LPARAM) iNumRec);
if (iTypeEdit)
DeleteRec(iNumRec);
iNumRec=AddNewItem(1,HANDLES.iSelDisk);
iTypeEdit=DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_TRACK),
hWnd,(DLGPROC)addTrackDlgProc,(LPARAM) iNumRec);
case IDM_EDIT_CHANGE:
if (HANDLES.iSelTrack>=0)
DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_TRACK),
hWnd,(DLGPROC)addTrackDlgProc,(LPARAM) HANDLES.iSelTrack);
if (HANDLES.iSelDisk>=0)
DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_DISK),
(LPARAM) HANDLES.iSelDisk);
case IDM_EDIT_DELETE:
DeleteRec(HANDLES.iSelTrack);
DeleteRec(HANDLES.iSelDisk);
case IDM_PROPERTY:
CreatePropertySheet(hWnd,1);
case IDM_VIEW_BIG:
case IDM_VIEW_SMALL:
case IDM_VIEW_LIST:
case IDM_VIEW_TABLE:
LV_ChangeView(wCommand);
case IDM_HELP_ABOUT:
DialogBox(ghInst,MAKEINTRESOURCE(IDD_DIALOG_HELP_ABOUT),hWnd,(DLGPROC)AboutDlgProc);
case IDM_FILE_EXIT:
SendMessage(hWnd,WM_DESTROY,0,0);
default:
void WndProc_OnMenu(HWND hwnd, HWND hwndCtl, UINT xPos, UINT yPos)
HMENU hMenu,hMenuTrackPopup ;
if (hwndCtl == HANDLES.hWndListView)
= GetSubMenu(hMenu, 0);
LRESULT WINAPI CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam,
LPARAM lParam)
switch(msg)
HANDLE_MSG(hWnd, WM_CONTEXTMENU, WndProc_OnMenu );
HANDLE_MSG(hWnd,WM_CREATE,WndProc_OnCreate);
HANDLE_MSG(hWnd,WM_DESTROY,WndProc_OnDestroy);
HANDLE_MSG(hWnd, WM_SIZE, WndProc_OnResize);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand );
case WM_NOTIFY:
if (TV_NotifyHandler(hWnd, msg, wParam, lParam))
if (TT_NotifyHandler(hWnd, msg, wParam, lParam))
if (LV_NotifyHandler(hWnd, msg, wParam, lParam))
return(DefWindowProc(hWnd,msg,wParam,lParam));
return 0;}
ATOM RegisterAppClass(HINSTANCE hInstance)
BOOL InitInstanceWindow(HINSTANCE hInstance,int nCmdShow)
;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
HANDLES.hInst=hInstance;
InitCommonControls();
if(!RegisterAppClass(hInstance))
MessageBox(NULL,"Îøèáêà
if(!InitInstanceWindow(hInstance,nCmdShow))
return
HWND hwndDlg=(HWND)0;
MSG msg;
while(GetMessage(&msg,NULL,0,0)){
if(!IsDialogMessage(PropHandle,&msg)){
TranslateMessage(&msg);
DispatchMessage(&msg);}}
return msg.wParam;
Ñòðàíèöû: 1, 2, 3, 4, 5, 6