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

金融证券系统

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <windowsx.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7. #include <io.h>
  8. #include "global.h"
  9. #include "resource.h"
  10. #include "appmain.h"
  11. #include "hq.h"
  12. #include "hq_cl.h"
  13. #include "comm.h"
  14. extern void CenterWindow(HWND hDlg);
  15. extern void DrawFrame(HDC hDC, HWND hWnd);
  16. int PreComm(char *comm)
  17. {
  18. char buff[255];
  19. int i=0,dot=0,j=0;
  20. BOOL digital=FALSE,alpha=FALSE;
  21. j=strlen(comm);           
  22. if(j==0) return NULL_COMM;
  23. if(j>=255) comm[255]=0;
  24. while(comm[i]==' '&&comm[i]!=0) i++;
  25.     if(comm[i]==0) return NULL_COMM;
  26.     
  27.     strcpy(buff,&comm[i]);
  28.     _strlwr(buff);
  29.     for(i=0,j=0;buff[i]!=0;i++)
  30.     {
  31.      if(buff[i]!=' ')
  32.      {
  33.      if(buff[i]>='0'&&buff[i]<='9')
  34.      digital =TRUE;
  35.      if(buff[i]>='a'&&buff[i]<='z')
  36.      alpha =TRUE;
  37.      if(buff[i]=='.')
  38.      dot++;
  39.      comm[j++] =buff[i];
  40.      }
  41.     }
  42.     comm[j]=0;
  43.     if(!alpha)
  44.     {
  45.      if(digital&&dot==3) 
  46.      return IP_CONN_COMM;
  47.      if(digital&&dot==0&&strlen(comm)==2)
  48.      return OP_CODE_COMM; 
  49.      if(digital&&dot==0&&strlen(comm)>2)
  50.      return GP_CODE_COMM;
  51.     }
  52.     else
  53.     {   
  54.      if(strlen(comm)<2)
  55.      return BAD_COMM;
  56.      if(dot ==0)
  57.          return PY_NAME_COMM;
  58.         else return BAD_COMM;
  59.     }    
  60. }
  61. void PreStockName(char *name)
  62. {
  63. char buff[255],*ptr;
  64. int i,j,len;
  65. len =strlen(name);
  66. if(len>=255) len =255;
  67. if((ptr =strstr(name,"A"))!=NULL)
  68. {
  69. *ptr++ ='a';
  70. *ptr =' ';
  71. }
  72. if((ptr =strstr(name,"B"))!=NULL)
  73. {
  74. *ptr++ ='b';
  75. *ptr =' ';
  76. }
  77. if((ptr =strstr(name,"C"))!=NULL)
  78. {
  79. *ptr++ ='c';
  80. *ptr =' ';
  81. }
  82. for(i=0,j=0;i<len;i++)
  83. {
  84. if(name[i]!=' ')
  85. {
  86. buff[j++]=name[i];
  87. }
  88. }
  89. buff[j]=0;
  90. _strlwr(buff);
  91. strcpy(name,buff);
  92. }   
  93. BOOL IsPyOk(char *py,char *name)
  94. {
  95.     int j;
  96.     unsigned int ofset=0,num =0,k,l;
  97.     
  98. for(j=0,l=0;py[j]!=0;j++)
  99. {
  100. if(name[l]==0) return FALSE;
  101. if((unsigned int)name[l]<128||py[j]<'a'||py[j]>'z')
  102. {
  103. if(name[l]!=py[j])
  104. return FALSE;
  105. else l++;
  106. }
  107. else
  108. {
  109. ofset =*(unsigned int *)&winpy[(py[j]-'a')*sizeof(unsigned int)*2];
  110. num =*(unsigned int *)&winpy[(py[j]-'a')*sizeof(unsigned int)*2+2];
  111. ofset =ofset*2+26*4;
  112. for(k=0;k<num;k++)
  113. {
  114. if(!strncmp(&name[l],&winpy[ofset+k*2],2))
  115. break;
  116. }
  117. if(k>=num)
  118. return FALSE;
  119. else l+=2;
  120. }
  121. }
  122.     return TRUE;
  123. }
  124. LRESULT CALLBACK SelGpDlgProc(HWND hDlg, UINT msg,
  125. WPARAM wParam, LPARAM lParam)
  126. {
  127. PAINTSTRUCT ps;
  128. // LPDRAWITEMSTRUCT lpdis;
  129.     char temp[20];
  130.     int i;
  131. static HBRUSH  hBrush;
  132. HWND hctl; 
  133. DWORD dw;
  134. switch(msg)
  135. {
  136. case WM_INITDIALOG:
  137. CenterWindow(hDlg);
  138. hBrush=CreateSolidBrush(RGB(0,255,255));
  139. for(i=0;i<MAX_SELE_NUM&&SeleGp[i][0]!=-1;i++)
  140. {
  141. SendDlgItemMessage(hDlg, IDC_LIST_GP, LB_ADDSTRING, 0,
  142. (LPARAM)(LPSTR)HqData[SeleGp[i][0]].lpPreData[SeleGp[i][1]].zqmc);
  143. }
  144. if(i>0)
  145. SendDlgItemMessage(hDlg, IDC_LIST_GP, LB_SETCURSEL,(WPARAM)0L,
  146. (LPARAM)(LPSTR)0L);  
  147. return TRUE;
  148. case WM_CTLCOLOR:
  149. SetBkMode((HDC)wParam, TRANSPARENT);
  150. switch(HIWORD(lParam))
  151. {
  152. case CTLCOLOR_DLG:
  153. case CTLCOLOR_MSGBOX:
  154. case CTLCOLOR_STATIC:
  155. return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);
  156. case CTLCOLOR_LISTBOX:
  157. return (LRESULT)hBrush;
  158. }
  159. return (LRESULT)NULL;
  160. /*        
  161. case WM_DRAWITEM:
  162. lpdis = (LPDRAWITEMSTRUCT)lParam;
  163. if (lpdis->itemID == -1)
  164. BtnFocusState(lpdis);
  165. else
  166. {
  167. switch (lpdis->itemAction)
  168. {
  169. case ODA_DRAWENTIRE: 
  170. BtnDrawEntireItem(lpdis);
  171. break;
  172. case ODA_SELECT:
  173. BtnSelectionState(lpdis);
  174. break;
  175. case ODA_FOCUS:
  176. BtnFocusState(lpdis);
  177. break;
  178. }
  179. }
  180. break;
  181. */
  182. case WM_PAINT:
  183. BeginPaint(hDlg, &ps);
  184. DrawFrame(ps.hdc, hDlg);
  185. hctl =GetDlgItem(hDlg, IDC_LIST_GP);
  186. SetFocus(hctl);
  187. EndPaint(hDlg, &ps);
  188. break;
  189. case WM_COMMAND:
  190. switch(wParam)
  191. {
  192. case IDOK:
  193. dw =SendDlgItemMessage(hDlg,IDC_LIST_GP,LB_GETCURSEL, 0 , 0);
  194. if(dw!=LB_ERR)
  195. {
  196. SendDlgItemMessage(hDlg,IDC_LIST_GP,LB_GETTEXT,(WPARAM)dw,(LPARAM)(LPSTR)temp);
  197. DeleteObject(hBrush);
  198. // ghDlgJy =NULL;
  199. EndDialog(hDlg,(int)dw);
  200. }
  201. else 
  202. {
  203. DeleteObject(hBrush);
  204. EndDialog(hDlg, -1);
  205. }
  206. break;
  207. case IDCANCEL:    
  208. DeleteObject(hBrush);
  209. EndDialog(hDlg, -1);
  210. break;
  211. }
  212. break;
  213. }
  214. return FALSE;
  215. }
  216. int DlgSelectGp(void)
  217. {
  218. int gp =0;
  219. FARPROC lpDlgProc =NULL;
  220. lpDlgProc =MakeProcInstance((FARPROC)SelGpDlgProc, ghInstance);
  221. gp =DialogBox(ghInstance, MAKEINTRESOURCE(IDD_GP_SELE), ghWndMain,
  222. lpDlgProc);
  223. FreeProcInstance(lpDlgProc);
  224.     return(gp);
  225. }