Win32-приложение Картотека аудио дисков

Для добавления новых дисков нужно выполнить следующие действия: в древовидной структуре выделить всю коллекцию; посредством пункта главного меню “Правка”→“добавить” вызвать диалог “добавление

Win32-приложение Картотека аудио дисков

Реферат

Компьютеры, программирование

Другие рефераты по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией

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))

return FALSE;

if (!LV_Create(hWnd))

return FALSE;

if (!TV_Create(hWnd))

return FALSE;

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);

else

InitTree();

}

}

else

{

if (!SaveItems(FileName))

MessageBox(NULL,"Ошибка сохранения файла.","Ошибка",MB_OK);

else

InitTree();

}

 

 

}

else

{

InitTree();

}

break;

case IDM_FILE_OPEN:

if (GetFlNameDialog(HANDLES.hWndMain,0))

{

if (!LoadItems(FileName))

MessageBox(NULL,"Ошибка загрузки файла.","Ошибка",MB_OK);

else MakeTree();

}

else

MessageBox(NULL,"Файл не выбран.","Ошибка",MB_OK);

break;

case IDM_FILE_SAVEAS:

if (!GetFlNameDialog(HANDLES.hWndMain,1))

{

MessageBox(NULL,"Файл не выбран.","Ошибка",MB_OK);

}

else

if (!SaveItems(FileName))

MessageBox(NULL,"Ошибка сохранения файла.","Ошибка",MB_OK);

break;

case IDM_FILE_SAVE:

if (strlen(FileName)==0)

{

if (!GetFlNameDialog(HANDLES.hWndMain,1))

{

break;

//MessageBox(NULL,"Файл не выбран.","Ошибка",MB_OK);

}

else

if (!SaveItems(FileName))

MessageBox(NULL,"Ошибка сохранения файла.","Ошибка",MB_OK);

}

 

break;

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);

}

else

{

iNumRec=AddNewItem(1,HANDLES.iSelDisk);

iTypeEdit=DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_TRACK),

hWnd,(DLGPROC)addTrackDlgProc,(LPARAM) iNumRec);

if (iTypeEdit)

DeleteRec(iNumRec);

}

MakeTree();

break;

case IDM_EDIT_CHANGE:

=0)">if (HANDLES.iSelTrack>=0)

{

DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_TRACK),

hWnd,(DLGPROC)addTrackDlgProc,(LPARAM) HANDLES.iSelTrack);

MakeTree();

break;

}

=0)">if (HANDLES.iSelDisk>=0)

{

 

DialogBoxParam(ghInst,MAKEINTRESOURCE(IDD_DIALOG_ADD_DISK),

hWnd,(DLGPROC)addDiskDlgProc,

(LPARAM) HANDLES.iSelDisk);

MakeTree();

}

break;

case IDM_EDIT_DELETE:

=0)">if (HANDLES.iSelTrack>=0)

{

DeleteRec(HANDLES.iSelTrack);

MakeTree();

break;

}

=0)">if (HANDLES.iSelDisk>=0)

{

DeleteRec(HANDLES.iSelDisk);

MakeTree();

}

break;

case IDM_PROPERTY:

=0)">if (HANDLES.iSelTrack>=0)

CreatePropertySheet(hWnd,1);

break;

case IDM_VIEW_BIG:

case IDM_VIEW_SMALL:

case IDM_VIEW_LIST:

case IDM_VIEW_TABLE:

LV_ChangeView(wCommand);

break;

case IDM_HELP_ABOUT:

DialogBox(ghInst,MAKEINTRESOURCE(IDD_DIALOG_HELP_ABOUT),hWnd,(DLGPROC)AboutDlgProc);

break;

case IDM_FILE_EXIT:

SendMessage(hWnd,WM_DESTROY,0,0);

break;

default:

break;

}

}

 

void WndProc_OnMenu(HWND hwnd, HWND hwndCtl, UINT xPos, UINT yPos)

{

HMENU hMenu,hMenuTrackPopup ;

if (hwndCtl == HANDLES.hWndListView)

{

// Get the context menu from the resource file.

hMenu = LoadMenu(HANDLES.hInst, MAKEINTRESOURCE(IDR_TRACKPOPUP));

// Get the first item in the menu for TrackPopupMenu().

hMenuTrackPopup = GetSubMenu(hMenu, 0);

// Draw and track the "floating" menu.

TrackPopupMenu(hMenuTrackPopup,

TPM_LEFTALIGN | TPM_RIGHTBUTTON,

xPos, yPos,

0, HANDLES.hWndMain, NULL);

// Destroy the menu

DestroyMenu(hMenu);

}

}

 

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))

{

break;

}

if (TT_NotifyHandler(hWnd, msg, wParam, lParam))

{

break;

}

 

if (LV_NotifyHandler(hWnd, msg, wParam, lParam))

{

break;

}

default:

return(DefWindowProc(hWnd,msg,wParam,lParam));

}

return 0;}

 

 

ATOM RegisterAppClass(HINSTANCE hInstance)

{

WNDCLASSEX wcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style=CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc=(WNDPROC)WndProc;

wcex.cbClsExtra=0;

wcex.cbWndExtra=0;

wcex.hInstance=hInstance;

wcex.hIcon=LoadIcon(hInstance,(LPCTSTR)IDI_ICON_APP);

wcex.hIconSm=LoadIcon(hInstance,(LPCTSTR)IDI_ICON_APP);

wcex.hCursor=NULL;

wcex.hbrBackground=CreateSolidBrush(COLOR);

wcex.lpszMenuName=MAKEINTRESOURCE(IDM_MENU_MAIN);

wcex.lpszClassName=ClassName;

return RegisterClassEx(&wcex);

}

 

 

BOOL InitInstanceWindow(HINSTANCE hInstance,int nCmdShow)

{

HWND hWnd=CreateWindow(ClassName,AplicationTitle,

WS_OVERLAPPEDWINDOW | WS_MAXIMIZE,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,

hInstance,NULL);

if(!hWnd) return 0;

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

return 1;

};

 

 

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,

LPSTR lpCmdLine,int nCmdShow)

{

HANDLES.hInst=hInstance;

InitCommonControls();

if(!RegisterAppClass(hInstance))

{

MessageBox(NULL,"Ошибка регистрации класса окна!!!",

Error_title,MB_OK|MB_ICONERROR);

return 0;

}

 

if(!InitInstanceWindow(hInstance,nCmdShow))

{

MessageBox(NULL,"Ошибка создания окна!!!",

Error_title,MB_OK|MB_ICONERROR);

return 0;

}

 

 

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