WS_DEBUG.C
上传用户:dansui
上传日期:2007-01-04
资源大小:71k
文件大小:3k
源码类别:

Ftp客户端

开发平台:

WINDOWS

  1. /*
  2.   MODULE: WS_DEBUG.C (debug routines)
  3. */
  4. #include "ws_glob.h"
  5. #include "winftp.h"
  6. int CreateDebugWindow(HWND hMainWnd,HWND hInst)
  7. {
  8.   static WNDCLASS wndclass;
  9.   long       nWndunits;     // window units for size and location
  10.   int        nWndx;         // the x axis multiplier
  11.   int        nWndy;         // the y axis multiplier
  12.   int        nX;            // the resulting starting point (x, y)
  13.   int        nY;
  14.   int        nWidth;        // the resulting width and height for this
  15.   int        nHeight;       // window
  16.   wndclass.style        = CS_VREDRAW | CS_PARENTDC;
  17.   wndclass.lpfnWndProc  = DebugWndProc;
  18.   wndclass.cbClsExtra   = 0;
  19.   wndclass.cbWndExtra   = 0;
  20.   wndclass.hInstance    = hInst;
  21.   wndclass.hIcon        = LoadIcon (hInst,"WINFTPD");
  22.   wndclass.hCursor      = LoadCursor ((HINSTANCE) NULL, IDC_ARROW);
  23.   wndclass.hbrBackground= GetStockObject(LTGRAY_BRUSH);
  24.   wndclass.lpszMenuName = NULL;
  25.   wndclass.lpszClassName= DBUGWNDCLASS;
  26.   // Create a device independant size and location
  27.   nWndunits = GetDialogBaseUnits();
  28.   nWndx = LOWORD(nWndunits);
  29.   nWndy = HIWORD(nWndunits);
  30.   nX = ((40 * nWndx) / 4);
  31.   nY = ((40 * nWndy) / 8);
  32.   nWidth = ((200 * nWndx) / 4);
  33.   nHeight = ((200 * nWndy) / 8);
  34.   RegisterClass(&wndclass);
  35.   hWndDbg=CreateWindow (DBUGWNDCLASS, lpDebugWindow, WS_OVERLAPPEDWINDOW,
  36.       nX,nY,nWidth,nHeight, (HWND) NULL,(HMENU) NULL,hInst,NULL);
  37.   ShowWindow (hWndDbg, SW_HIDE);
  38.   return(TRUE);
  39. }
  40. //*******************************************************************
  41. //*******************************************************************
  42. void SetDebugWindowText (LPSTR lpsz)
  43. {
  44.   SetWindowText (hWndDbg, lpsz);
  45. }
  46. //*******************************************************************
  47. //*******************************************************************
  48. LRESULT CALLBACK DebugWndProc (HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
  49. {
  50.   // int nRC;
  51.   switch (Message)
  52.   {
  53.     case WM_CREATE:
  54.       SetScrollRange(hWnd, SB_VERT, 0, 100, FALSE);
  55.       CheckMenuItem (GetMenu (hWnd), IDM_LOGTOFILE, nLogFlag);
  56.       sVPos = 0;
  57.       break;
  58.     case WM_SETCURSOR:
  59.       if(bCmdInProgress)
  60.         SetCursor(hWaitCursor);
  61.       else
  62.         return DefWindowProc(hWnd, Message, wParam, lParam);
  63.       break;
  64.     case WM_PAINT:
  65.       DoPaint((HWND)hWnd);
  66.       break;
  67.     case WM_VSCROLL:
  68.       switch(wParam)
  69.       {
  70.         case SB_LINEDOWN:
  71.           if(sVPos<((UINT) ptrhGMem-1)) sVPos++;
  72.           break;
  73.         case SB_LINEUP:
  74.           if(sVPos>0) --sVPos;
  75.           break;
  76.         case SB_THUMBPOSITION:
  77.           sVPos = (UINT) min((WORD) ptrhGMem, LOWORD(lParam));
  78.           break;
  79.         case SB_PAGEUP:
  80.           if(sVPos>10) sVPos-=10; else sVPos=0;
  81.           break;
  82.         case SB_PAGEDOWN:
  83.           if(sVPos<(UINT) (ptrhGMem-10)) sVPos+=10; else sVPos=ptrhGMem;
  84.           break;
  85.         default:
  86.           return FALSE;
  87.       }
  88.       SetScrollPos(hWnd,SB_VERT,sVPos,TRUE);
  89.       InvalidateRect(hWnd,NULL,TRUE);
  90.       break;
  91.     default:
  92.       return DefWindowProc(hWnd, Message, wParam, lParam);
  93.   }
  94.   return 0L;