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

金融证券系统

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <commdlg.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <malloc.h>
  6. #include <ctype.h>
  7. #include <stdlib.h>
  8. #include <io.h>
  9. #include "resource.h"
  10. #include "appmain.h"
  11. #include "hq.h"
  12. #include "hq_tcp.h"
  13. #include "hq_cl.h"
  14. #include "jy_cl.h"
  15. #include "jy_tcp.h"
  16. #include "msg.h"
  17. #include "pctcp.h"
  18. #include "fx.h"
  19.        
  20. extern BOOL IsZsRec(int jys, int recNum);
  21. extern BOOL ErrMsg(HWND, LPSTR);
  22. extern char szDataPath[128];
  23. LRESULT CALLBACK SetHqEnvProc(HWND hDlg, UINT msg,
  24. WPARAM wParam, LPARAM lParam);
  25. extern void Ip_Commit_Pack(int len,char *buff);
  26. #define SET_SUCC 0
  27. #define SET_NO_THIS_ID -1
  28. #define SET_PWD_ERROR -2
  29. #define SET_DATA_ERROR -3
  30. #define  DATA_START_SIGN -16
  31. #define MAX_UCODE_SIZE 6
  32. #define MAX_PWD_SIZE 6
  33. typedef struct tag_TCP_FRAME_HQ_ENV
  34. {
  35.     char sign;
  36.     int len;
  37.   char head[6];
  38. char ucode[MAX_UCODE_SIZE];
  39. char pwd[MAX_PWD_SIZE];
  40. char newpwd[MAX_PWD_SIZE+1];
  41. }TCP_FRAME_HQ_ENV;
  42. int SetHqEnv(void)
  43. {
  44. FARPROC lpDlgProc =NULL;
  45. lpDlgProc =MakeProcInstance((FARPROC)SetHqEnvProc, ghInstance);
  46. DialogBox(ghInstance, MAKEINTRESOURCE(IDD_ENV_HQ), ghWndMain,
  47. lpDlgProc);
  48. FreeProcInstance(lpDlgProc);
  49. return TRUE;
  50. }
  51. LRESULT CALLBACK SetHqEnvProc(HWND hDlg, UINT msg,
  52. WPARAM wParam, LPARAM lParam)
  53. {
  54. PAINTSTRUCT ps;
  55. char tmp[80];
  56. HWND hctl;
  57. int i,j;
  58. //int idFocus;
  59. //LPDRAWITEMSTRUCT lpdis;
  60. LOGFONT tmplf;
  61. //static HBRUSH hBrush;     
  62. //RECT rc;
  63. //HDC hDC;
  64. OFSTRUCT os;
  65. HANDLE hf;
  66. TCP_FRAME_HQ_ENV TcpFrameHqEnv;
  67. CHOOSEFONT cf;
  68. STOCK_INFO_FRAME StockInfo;
  69.     
  70. switch(msg)
  71. {
  72. case WM_INITDIALOG:
  73. SendDlgItemMessage(hDlg, IDC_ENV_IP, EM_LIMITTEXT, 16, 0L);
  74. SendDlgItemMessage(hDlg, IDC_ENV_USEPWD, EM_LIMITTEXT, 6, 0L);
  75. SendDlgItemMessage(hDlg, IDC_ENV_NEWPWD, EM_LIMITTEXT, 6, 0L);
  76. GetInitString("NET", "HOST", tmp);
  77. SetDlgItemText(hDlg, IDC_ENV_IP, tmp);
  78. sprintf(tmp,"%d",ITEM_SPACE_X);
  79. SetDlgItemText(hDlg, IDC_ENV_SPACE, tmp);
  80. sprintf(tmp,"%d",X0_TITLE);
  81. SetDlgItemText(hDlg, IDC_ENV_ZQMC, tmp);
  82.             sprintf(tmp,"%d",Fx->range+1);
  83.             SetDlgItemText(hDlg, IDC_ENV_PERI, tmp);
  84. CenterWindow(hDlg);
  85. //hBrush=CreateSolidBrush(RGB(0,255,255));
  86. return TRUE;
  87. case WM_PAINT:
  88. BeginPaint(hDlg, &ps);
  89. DrawFrame(ps.hdc, hDlg);
  90. //GetClientRect(hDlg, &rc);
  91. EndPaint(hDlg, &ps);
  92. break;
  93. case WM_COMMAND:
  94. switch(wParam)
  95. {
  96. case IDOK:
  97.     GetDlgItemText(hDlg, IDC_ENV_IP, tmp,16);
  98. PutInitString("NET", "HOST", tmp);
  99.     
  100.     strncpy(TcpFrameHqEnv.ucode,UserID,6);
  101.     
  102.                     GetDlgItemText(hDlg, IDC_ENV_USEPWD, tmp,7);
  103.     if(strlen(tmp)>0)
  104.     {
  105.      strncpy(TcpFrameHqEnv.pwd,tmp,6);
  106.     }
  107.     
  108. GetDlgItemText(hDlg, IDC_ENV_NEWPWD, tmp,7);
  109. if(strlen(tmp)>0)
  110. {        
  111. strncpy(TcpFrameHqEnv.newpwd,tmp,6);
  112.   TcpFrameHqEnv.newpwd[MAX_PWD_SIZE] =0;
  113. TcpFrameHqEnv.sign =DATA_START_SIGN;
  114. TcpFrameHqEnv.len =sizeof(TCP_FRAME_HQ_ENV) -3;
  115.     strncpy(TcpFrameHqEnv.head,"SETENV",6); 
  116.  
  117.   GetDlgItemText(hDlg, IDC_ENV_PWDAGAIN, tmp,7);
  118.   if(strncmp(tmp,TcpFrameHqEnv.newpwd,6)!=0)
  119.   {               
  120.       MessageBox(hDlg, "两次输入的新密码不同","环境设置", MB_OK);
  121.       hctl =GetDlgItem(hDlg, IDC_ENV_PWDAGAIN);
  122. SetFocus(hctl);
  123. break;
  124.   }
  125.   else
  126.   {
  127.   Ip_Commit_Pack(sizeof(TCP_FRAME_HQ_ENV),(char *)&TcpFrameHqEnv);
  128.   Msg("您的修改行情用户密码的请求已发出",MSG_VERT);  
  129.   }
  130. }   
  131. GetDlgItemText(hDlg, IDC_ENV_SPACE, tmp,10);
  132. i =atoi(tmp);
  133. GetDlgItemText(hDlg, IDC_ENV_ZQMC, tmp,10);
  134. j =atoi(tmp);
  135. if((unsigned short)i!=ITEM_SPACE_X||(unsigned short)j!=X0_TITLE)
  136. {
  137. if(i>=1 &&i<=20)
  138. {
  139. ITEM_SPACE_X =i;
  140. sprintf(tmp,"%d",ITEM_SPACE_X);
  141. PutInitString("HQ", "ITEM_SPACE_X", tmp);
  142. }
  143. if(j>=40 &&j<=90)
  144. {
  145. X0_TITLE =j;
  146. sprintf(tmp,"%d",X0_TITLE);
  147. PutInitString("HQ", "X0_TITLE", tmp);
  148. }
  149. PostMessage(ghWndHq,WM_USER+5,0,0L);
  150. InvalidateRect(ghWndHq, NULL, TRUE);
  151. GetDlgItemText(hDlg, IDC_ENV_PERI, tmp,10);
  152.              i=atoi(tmp);
  153.              if(i>0&&i<8)
  154.              {   
  155.              i--;
  156. CheckMenuItem(ghMenuMain,RANGE_MENU[Fx->range], MF_BYCOMMAND|MF_UNCHECKED);
  157. CheckMenuItem(ghMenuMain,RANGE_MENU[i], MF_BYCOMMAND|MF_CHECKED);
  158.              Fx->range =i;
  159.              sprintf(tmp,"%d",i);
  160.              PutInitString("FX", "RANGE", tmp);
  161.              }
  162. EndDialog(hDlg, 1);
  163. break;
  164. case IDCANCEL:
  165. EndDialog(hDlg, 1);
  166. break;
  167. case IDC_FONT:
  168. memset(&cf, 0, sizeof(CHOOSEFONT));
  169. cf.lStructSize = sizeof(CHOOSEFONT);
  170. cf.hwndOwner = ghWndMain;
  171. cf.lpLogFont = &tmplf;
  172. cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
  173. cf.rgbColors = RGB(0, 255, 255); /* light blue */
  174. cf.nFontType = SCREEN_FONTTYPE;
  175. if(ChooseFont(&cf))
  176. {   
  177. memcpy(&lf,&tmplf,sizeof(LOGFONT));
  178. strcpy(tmp,"font.dat");
  179. hf =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_WRITE);
  180. _lwrite(hf,&lf,sizeof(LOGFONT));
  181. _lclose(hf);
  182. PostMessage(ghWndHq,WM_USER+1,0,0L);
  183. InvalidateRect(ghWndHq, NULL, TRUE);
  184. }
  185. break;
  186. case IDC_SZ_MINUTE:
  187.     StockInfo.type=FILE_SZ_ALL_MINUTE;
  188.     strcpy(StockInfo.name,"");
  189.      UDP_Send_Stock_Info(&StockInfo);
  190.      hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
  191.      EnableWindow(hctl, FALSE);
  192.      hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
  193.      EnableWindow(hctl, FALSE);     
  194.      hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
  195.      EnableWindow(hctl, FALSE);
  196.      hctl =GetDlgItem(hDlg, IDC_SH_DAY);
  197.      EnableWindow(hctl, FALSE);
  198.     break;
  199. case IDC_SZ_DAY:
  200.     StockInfo.type=FILE_SZ_ALL_DAY;
  201.     strcpy(StockInfo.name,"");
  202.      UDP_Send_Stock_Info(&StockInfo);
  203.      hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
  204.      EnableWindow(hctl, FALSE);
  205.      hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
  206.      EnableWindow(hctl, FALSE);     
  207.      hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
  208.      EnableWindow(hctl, FALSE);
  209.      hctl =GetDlgItem(hDlg, IDC_SH_DAY);
  210.      EnableWindow(hctl, FALSE);
  211. break;
  212. case IDC_SH_MINUTE:
  213.     StockInfo.type=FILE_SH_ALL_MINUTE;
  214.     strcpy(StockInfo.name,"");
  215.      UDP_Send_Stock_Info(&StockInfo);
  216.      hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
  217.      EnableWindow(hctl, FALSE);
  218.      hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
  219.      EnableWindow(hctl, FALSE);     
  220.      hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
  221.      EnableWindow(hctl, FALSE);
  222.      hctl =GetDlgItem(hDlg, IDC_SH_DAY);
  223.      EnableWindow(hctl, FALSE);
  224. break;
  225. case IDC_SH_DAY:
  226.     StockInfo.type=FILE_SH_ALL_DAY;
  227.     strcpy(StockInfo.name,"");
  228.      UDP_Send_Stock_Info(&StockInfo);
  229.      hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
  230.      EnableWindow(hctl, FALSE);
  231.      hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
  232.      EnableWindow(hctl, FALSE);     
  233.      hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
  234.      EnableWindow(hctl, FALSE);
  235.      hctl =GetDlgItem(hDlg, IDC_SH_DAY);
  236.      EnableWindow(hctl, FALSE);     
  237. break;
  238. }
  239. break;
  240. }
  241. return FALSE;
  242. }
  243.