TITLE.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /************************************************************************
  2.   File: title.c
  3.   Purpose:
  4.      Contains the functions that control CDTEST's GetFileTitle()
  5.      dialog box.
  6.   Functions:
  7.     - DoTitleDialog()    -- Creates CDTEST's GetFileTitle() dialog.
  8.     - TitleProc()        -- The callback function for CDTEST's
  9.                             GetFileTitle() dialog box.
  10. ************************************************************************/
  11. #include <windows.h>
  12. #include <commdlg.h>
  13. #include "cdtest.h"
  14. #include "title.h"
  15. extern UINT uMode ;                               //see cdtest.c
  16. extern LONG MyAtol(LPTSTR, BOOL, LPBOOL) ;
  17. #define MAXTITLE 256
  18. TCHAR szTitle[MAXTITLE] ;
  19. TCHAR szPath[MAXTITLE] ;
  20. short nReturn ;
  21. WORD wBufSize ;
  22. /************************************************************************
  23.   Function: DoTitleDialog(HWND)
  24.   Purpose: Creates CDTEST's GetFileTitle() dialog box.
  25.   Returns: Nothing.
  26.   Comments:
  27. ************************************************************************/
  28. void DoTitleDialog(HWND hwnd)
  29. {
  30.   DialogBox(hInst, MAKEINTRESOURCE(ID_TITLEDIALOG), hwnd, TitleProc) ;
  31. }
  32. /************************************************************************
  33.   Function: TitleProc(HWND, UINT, UINT, LONG)
  34.   Purpose: Is the callback function for CDTEST's GetFileTitle() dialog.
  35.   Returns: TRUE or FALSE depending on the situation.
  36.   Comments:
  37. ************************************************************************/
  38. BOOL APIENTRY TitleProc(HWND hwnd, UINT msg, UINT wParam, LONG lParam)
  39. {
  40.   TCHAR szNum[30] ;
  41.   BOOL b ;
  42.   switch (msg)
  43.   {
  44.     case WM_INITDIALOG:
  45.       SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  46.       break ;
  47.     case WM_COMMAND:
  48.     {
  49.         switch (LOWORD(wParam))
  50.         {
  51.           case IDOK:
  52.             GetDlgItemText(hwnd, ID_PATHTI, szPath, MAXTITLE) ;
  53.             GetDlgItemText(hwnd, ID_BUFFSIZETI, szNum, 30) ;
  54.             wBufSize =  (WORD) MyAtol(szNum, uMode==IDM_HEXMODE, &b) ;
  55.             if (wBufSize > 256)
  56.             {
  57.                 wBufSize = 256 ;
  58.                 SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  59.             }
  60.             nReturn = GetFileTitle(szPath, szTitle, wBufSize) ;
  61.             wsprintf(szTemp, szShortFilter, nReturn) ;
  62.             SetDlgItemText(hwnd, ID_RETURNTI, szTemp) ;
  63.             SetDlgItemText(hwnd, ID_TITLETI, szTitle) ;
  64.             break ;
  65.           case IDCANCEL:
  66.             EndDialog(hwnd, FALSE) ;
  67.             break ;
  68.           case ID_RESETTITLE:
  69.             szPath[0] = 0 ;
  70.             szNum[0] = 0 ;
  71.             szTemp[0] = 0 ;
  72.             szTitle[0] = 0 ;
  73.             SetDlgItemText(hwnd, ID_PATHTI, szPath) ;
  74.             SetDlgItemText(hwnd, ID_RETURNTI, szTemp) ;
  75.             SetDlgItemText(hwnd, ID_TITLETI, szTitle) ;
  76.             SetDlgItemText(hwnd, ID_BUFFSIZETI, TEXT("256")) ;
  77.             break ;
  78.           default: break ;
  79.         }
  80.     }
  81.     default: break ;
  82.   }
  83.   return FALSE ;
  84. }