FX.CPP
上传用户:bjghjy
上传日期:2007-01-07
资源大小:379k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include "resource.h"
  5. #include "global.h"
  6. #include "hq.h"
  7. #include "fx.h"
  8. //#include "hq_cl.h"
  9. #define FX_CLASS "CFX"
  10. extern HINSTANCE ghInstance;
  11. extern HWND ghWndMain;
  12. extern BOOL ErrMsg(HWND, LPSTR);
  13. extern BOOL IsZsRec(int jys, int rec_num);
  14. LRESULT CALLBACK FxWndProc(HWND, UINT, WPARAM, LPARAM);
  15. BOOL RegisterFx(void)
  16. {
  17. WNDCLASS wc;
  18. memset(&wc, 0, sizeof(wc));
  19. wc.lpfnWndProc =FxWndProc;
  20. wc.lpszClassName =FX_CLASS;
  21. wc.cbWndExtra =2*sizeof(WORD);
  22. wc.hbrBackground =GetStockObject(BLACK_BRUSH);
  23. wc.hInstance = ghInstance;
  24. wc.hCursor = LoadCursor(NULL, IDC_ARROW);        
  25. if(!RegisterClass(&wc)) return FALSE;
  26. return TRUE;
  27. }
  28. BOOL CreateWndFx(HWND hWnd, int fx_type, int rec_left,
  29. int x, int y, int w, int h)
  30. {                          
  31. HWND hwnd;
  32. HANDLE hFx;
  33. LPFX lpFx;
  34. hwnd =CreateWindow(FX_CLASS, NULL, WS_CHILD|WS_CLIPSIBLINGS,
  35. x, y, w, h, hWnd, NULL, ghInstance, NULL);
  36. if(hwnd ==NULL)
  37. {
  38. ErrMsg(hWnd, "Error create fx window");
  39. return FALSE;
  40. }
  41. hFx =LocalAlloc(GHND, sizeof(FX));
  42. if(!hFx)
  43. {
  44. ErrMsg(NULL, "alloc fx failed");
  45. DestroyWindow(hwnd);
  46. return FALSE;
  47. }
  48. lpFx =(LPFX)LocalLock(hFx);
  49. if(!lpFx)
  50. {
  51. ErrMsg(NULL, "alloc fx failed");
  52. DestroyWindow(hwnd);
  53. return FALSE;
  54. }
  55. lpFx->type =fx_type;
  56. lpFx->recFirst =rec_left;
  57. LocalUnlock(hFx);
  58. SetWindowWord(hWnd, 0, hFx);
  59. return TRUE;
  60. }
  61. LRESULT CALLBACK FxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  62. {
  63. PAINTSTRUCT ps;
  64. HANDLE hFx;
  65. LPFX lpFx;
  66. switch(wParam)
  67. {
  68. case WM_CREATE:
  69. break;
  70. case WM_PAINT:
  71. BeginPaint(hWnd, &ps);
  72. hFx =GetWindowWord(hWnd, 0);
  73. if(hFx)
  74. {
  75. lpFx =(LPFX)LocalLock(hFx);
  76. if(lpFx){DrawFx(hWnd, ps.hdc, lpFx); LocalUnlock(hFx);}
  77. }
  78. EndPaint(hWnd, &ps);
  79. break;
  80. case WM_COMMAND:
  81. break;
  82. case WM_KEYDOWN:
  83. break;
  84. case WM_DESTROY:
  85. break;
  86. }
  87. return DefWindowProc(hWnd, message, wParam, lParam);
  88. }