Dlg_Frame.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. // Dlg_Frame.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HW_OCX.h"
  5. #include "Dlg_Frame.h"
  6. #include ".\dlg_frame.h"
  7. #include "Dlg_PlayBack.h"
  8. #include "Dlg_SystemCfg.h"
  9. #include "Global.h"
  10. #include "mdlProject.h"
  11. // CDlg_Frame 对话框
  12. COLORREF g_Color1=RGB( 32,41,46 );//RGB( 59,61,63 );//
  13. COLORREF g_Color2=RGB( 162,154,33 );//59,61,63 );//RGB(0xD1,0xE1,0xF8);//RGB( 162,154,33 );//
  14. COLORREF g_Color3=RGB( 255,255,255 );
  15. void CALLBACK ReadDataCallBack(DWORD nPort,UCHAR *pPacketBuffer,DWORD nPacketSize)
  16. {
  17. TRACE("%d\n",nPacketSize);
  18. }
  19. IMPLEMENT_DYNAMIC(CDlg_Frame, CDialog)
  20. CDlg_Frame::CDlg_Frame(CWnd* pParent /*=NULL*/)
  21. : CDialog(CDlg_Frame::IDD, pParent)
  22. {
  23. m_nOCXIndex = 0;
  24. WINDOWNUM = 9;
  25. m_nVedioIndex = -1;
  26. }
  27. CDlg_Frame::~CDlg_Frame()
  28. {
  29. }
  30. void CDlg_Frame::DoDataExchange(CDataExchange* pDX)
  31. {
  32. CDialog::DoDataExchange(pDX);
  33. DDX_Control(pDX, IDC_STA_VIDEO1, m_hVideo[0]);
  34. DDX_Control(pDX, IDC_STA_VIDEO2, m_hVideo[1]);
  35. DDX_Control(pDX, IDC_STA_VIDEO3, m_hVideo[2]);
  36. DDX_Control(pDX, IDC_STA_VIDEO4, m_hVideo[3]);
  37. DDX_Control(pDX, IDC_STA_VIDEO5, m_hVideo[4]);
  38. DDX_Control(pDX, IDC_STA_VIDEO6, m_hVideo[5]);
  39. DDX_Control(pDX, IDC_STA_VIDEO7, m_hVideo[6]);
  40. DDX_Control(pDX, IDC_STA_VIDEO8, m_hVideo[7]);
  41. DDX_Control(pDX, IDC_STA_VIDEO9, m_hVideo[8]);
  42. DDX_Control(pDX, IDC_STA_VIDEO10, m_hVideo[9]);
  43. DDX_Control(pDX, IDC_STA_VIDEO11, m_hVideo[10]);
  44. DDX_Control(pDX, IDC_STA_VIDEO12, m_hVideo[11]);
  45. DDX_Control(pDX, IDC_STA_VIDEO13, m_hVideo[12]);
  46. DDX_Control(pDX, IDC_STA_VIDEO14, m_hVideo[13]);
  47. DDX_Control(pDX, IDC_STA_VIDEO15, m_hVideo[14]);
  48. DDX_Control(pDX, IDC_STA_VIDEO16, m_hVideo[15]);
  49. DDX_Control(pDX, IDC_STA_VIDEO17, m_hVideo[16]);
  50. DDX_Control(pDX, IDC_STA_VIDEO18, m_hVideo[17]);
  51. DDX_Control(pDX, IDC_STA_VIDEO19, m_hVideo[18]);
  52. DDX_Control(pDX, IDC_STA_VIDEO20, m_hVideo[19]);
  53. DDX_Control(pDX, IDC_STA_VIDEO21, m_hVideo[20]);
  54. DDX_Control(pDX, IDC_STA_VIDEO22, m_hVideo[21]);
  55. DDX_Control(pDX, IDC_STA_VIDEO23, m_hVideo[22]);
  56. DDX_Control(pDX, IDC_STA_VIDEO24, m_hVideo[23]);
  57. DDX_Control(pDX, IDC_STA_VIDEO25, m_hVideo[24]);
  58. DDX_Control(pDX, IDC_STA_VIDEO26, m_hVideo[25]);
  59. DDX_Control(pDX, IDC_STA_VIDEO27, m_hVideo[26]);
  60. DDX_Control(pDX, IDC_STA_VIDEO28, m_hVideo[27]);
  61. DDX_Control(pDX, IDC_STA_VIDEO29, m_hVideo[28]);
  62. DDX_Control(pDX, IDC_STA_VIDEO30, m_hVideo[29]);
  63. DDX_Control(pDX, IDC_STA_VIDEO31, m_hVideo[30]);
  64. DDX_Control(pDX, IDC_STA_VIDEO32, m_hVideo[31]);
  65. DDX_Control(pDX, IDC_STA_VIDEO33, m_hVideo[32]);
  66. DDX_Control(pDX, IDC_STA_VIDEO34, m_hVideo[33]);
  67. DDX_Control(pDX, IDC_STA_VIDEO35, m_hVideo[34]);
  68. DDX_Control(pDX, IDC_STA_VIDEO36, m_hVideo[35]);
  69. DDX_Control(pDX, IDC_STA_VIDEO37, m_hVideo[36]);
  70. DDX_Control(pDX, IDC_STA_VIDEO38, m_hVideo[37]);
  71. DDX_Control(pDX, IDC_STA_VIDEO39, m_hVideo[38]);
  72. DDX_Control(pDX, IDC_STA_VIDEO40, m_hVideo[39]);
  73. DDX_Control(pDX, IDC_STA_VIDEO41, m_hVideo[40]);
  74. DDX_Control(pDX, IDC_STA_VIDEO42, m_hVideo[41]);
  75. DDX_Control(pDX, IDC_STA_VIDEO43, m_hVideo[42]);
  76. DDX_Control(pDX, IDC_STA_VIDEO44, m_hVideo[43]);
  77. DDX_Control(pDX, IDC_STA_VIDEO45, m_hVideo[44]);
  78. DDX_Control(pDX, IDC_STA_VIDEO46, m_hVideo[45]);
  79. DDX_Control(pDX, IDC_STA_VIDEO47, m_hVideo[46]);
  80. DDX_Control(pDX, IDC_STA_VIDEO48, m_hVideo[47]);
  81. DDX_Control(pDX, IDC_STA_VIDEO49, m_hVideo[48]);
  82. DDX_Control(pDX, IDC_STA_VIDEO50, m_hVideo[49]);
  83. DDX_Control(pDX, IDC_STA_VIDEO51, m_hVideo[50]);
  84. DDX_Control(pDX, IDC_STA_VIDEO52, m_hVideo[51]);
  85. DDX_Control(pDX, IDC_STA_VIDEO53, m_hVideo[52]);
  86. DDX_Control(pDX, IDC_STA_VIDEO54, m_hVideo[53]);
  87. DDX_Control(pDX, IDC_STA_VIDEO55, m_hVideo[54]);
  88. DDX_Control(pDX, IDC_STA_VIDEO56, m_hVideo[55]);
  89. DDX_Control(pDX, IDC_STA_VIDEO57, m_hVideo[56]);
  90. DDX_Control(pDX, IDC_STA_VIDEO58, m_hVideo[57]);
  91. DDX_Control(pDX, IDC_STA_VIDEO59, m_hVideo[58]);
  92. DDX_Control(pDX, IDC_STA_VIDEO60, m_hVideo[59]);
  93. DDX_Control(pDX, IDC_STA_VIDEO61, m_hVideo[60]);
  94. DDX_Control(pDX, IDC_STA_VIDEO62, m_hVideo[61]);
  95. DDX_Control(pDX, IDC_STA_VIDEO63, m_hVideo[62]);
  96. DDX_Control(pDX, IDC_STA_VIDEO64, m_hVideo[63]);
  97. }
  98. BEGIN_MESSAGE_MAP(CDlg_Frame, CDialog)
  99. ON_WM_PAINT()
  100. ON_WM_LBUTTONDOWN()
  101. ON_WM_LBUTTONUP()
  102. ON_BN_CLICKED(IDC_PLAY, OnBnClickedPlay)
  103. ON_BN_CLICKED(IDC_GETPICTURE, OnBnClickedGetpicture)
  104. ON_BN_CLICKED(IDC_SYSTEMCFG, OnBnClickedSystemcfg)
  105. ON_BN_CLICKED(IDC_VIDEOFILEPLAY, OnBnClickedVideofileplay)
  106. ON_WM_CTLCOLOR()
  107. ON_WM_ERASEBKGND()
  108. ON_WM_LBUTTONDBLCLK()
  109. END_MESSAGE_MAP()
  110. // CDlg_Frame 消息处理程序
  111. BOOL CDlg_Frame::OnInitDialog()
  112. {
  113. CDialog::OnInitDialog();
  114. // TODO: 在此添加额外的初始化
  115. CRect rc( 0,0,g_nFrameWeight,g_nFrameHeight );
  116. this->MoveWindow( rc );
  117. SetPos();
  118. DealRect();
  119. ////////////////////////////////////////////////////////////////////////////////////
  120. CString csFile;
  121. UpdateData(TRUE);
  122. MP4_ClientSetShowMode(NORMALMODE,0);
  123. int itemp = 1;
  124. char ips[256];
  125. sprintf(ips,"%s","192.168.1.247");
  126. m_ClientVideo[0].m_bRemoteChannel = 0;
  127. m_ClientVideo[0].m_sIPAddress = ips;
  128. m_ClientVideo[0].m_hShowVideo = m_hVideo[0];
  129. m_ClientVideo[0].m_bSendMode = TCPMODE;
  130. m_ClientVideo[0].m_nImgFormat = 0; // request CIF format
  131. m_ClientVideo[0].m_sUserName = "123";
  132. m_ClientVideo[0].m_sUserPassword="w";
  133. m_ClientVideo[0].m_bUserCheck = TRUE;
  134. MP4_ClientSetTTL(64);
  135. m_hHandle[0] = MP4_ClientStart(&m_ClientVideo[0],ReadDataCallBack);
  136. if( m_hHandle[0]==-1 )
  137. {
  138. MessageBox("error");
  139. }
  140. return TRUE; // return TRUE unless you set the focus to a control
  141. // 异常: OCX 属性页应返回 FALSE
  142. }
  143. void CDlg_Frame::Resoure()
  144. {
  145. MP4_ClientStop( m_hHandle[0] );
  146. }
  147. void CDlg_Frame::SetPos()
  148. {
  149. CRect rMain;
  150. this->GetWindowRect( rMain );
  151. ScreenToClient( &rMain );
  152. int W=0,H=0;
  153. CRect rcSta2;
  154. GetDlgItem(IDC_STATIC2)->GetWindowRect( rcSta2 );
  155. W = rcSta2.Width();
  156. H = rcSta2.Height();
  157. rcSta2.right = rMain.right-10;
  158. rcSta2.left = rcSta2.right-W ;
  159. rcSta2.top = rMain.top+10;
  160. rcSta2.bottom = rcSta2.top+H;
  161. GetDlgItem(IDC_STATIC2)->MoveWindow( rcSta2 );
  162. CRect rcGrid1;
  163. GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rcGrid1 );
  164. W = rcGrid1.Width();
  165. H = rcGrid1.Height();
  166. rcGrid1.left = rcSta2.left+7 ;
  167. rcGrid1.right = rcGrid1.left+W;
  168. rcGrid1.top = rcSta2.top+13;
  169. rcGrid1.bottom = rcGrid1.top+H;
  170. GetDlgItem(IDC_STA_GRID1)->MoveWindow( rcGrid1 );
  171. CRect rcGrid2;
  172. rcGrid2.left = rcGrid1.right+2 ;
  173. rcGrid2.right = rcGrid2.left+W;
  174. rcGrid2.top = rcGrid1.top;
  175. rcGrid2.bottom = rcGrid1.bottom;
  176. GetDlgItem(IDC_STA_GRID2)->MoveWindow( rcGrid2 );
  177. CRect rcGrid3;
  178. rcGrid3.left = rcGrid2.right+2 ;
  179. rcGrid3.right = rcGrid3.left+W;
  180. rcGrid3.top = rcGrid2.top;
  181. rcGrid3.bottom = rcGrid2.bottom;
  182. GetDlgItem(IDC_STA_GRID3)->MoveWindow( rcGrid3 );
  183. CRect rcGrid4;
  184. rcGrid4.left = rcSta2.left+7 ;
  185. rcGrid4.right = rcGrid4.left+W;
  186. rcGrid4.top = rcGrid1.bottom+2;
  187. rcGrid4.bottom = rcGrid4.top+H;
  188. GetDlgItem(IDC_STA_GRID4)->MoveWindow( rcGrid4 );
  189. CRect rcGrid5;
  190. rcGrid5.left = rcGrid4.right+2 ;
  191. rcGrid5.right = rcGrid5.left+W;
  192. rcGrid5.top = rcGrid4.top;
  193. rcGrid5.bottom = rcGrid4.bottom;
  194. GetDlgItem(IDC_STA_GRID5)->MoveWindow( rcGrid5 );
  195. CRect rcGrid6;
  196. rcGrid6.left = rcGrid5.right+2 ;
  197. rcGrid6.right = rcGrid6.left+W;
  198. rcGrid6.top = rcGrid4.top;
  199. rcGrid6.bottom = rcGrid4.bottom;
  200. GetDlgItem(IDC_STA_GRID6)->MoveWindow( rcGrid6 );
  201. ////////////////////
  202. CRect rcSta17;
  203. GetDlgItem(IDC_STATIC17)->GetWindowRect( rcSta17 );
  204. W = rcSta17.Width();
  205. H = rcSta17.Height();
  206. rcSta17.right = rcSta2.right;
  207. rcSta17.left = rcSta2.left ;
  208. rcSta17.top = rcSta2.bottom+20;
  209. rcSta17.bottom = rcSta17.top+H;
  210. GetDlgItem(IDC_STATIC17)->MoveWindow( rcSta17 );
  211. CRect rcBtnPlay;
  212. GetDlgItem(IDC_PLAY)->GetWindowRect( rcBtnPlay );
  213. W = rcBtnPlay.Width();
  214. H = rcBtnPlay.Height();
  215. rcBtnPlay.left = rcSta17.left+3 ;
  216. rcBtnPlay.right = rcSta17.right-3;
  217. rcBtnPlay.top = rcSta17.top+10;
  218. rcBtnPlay.bottom = rcBtnPlay.top+H;
  219. GetDlgItem(IDC_PLAY)->MoveWindow( rcBtnPlay );
  220. CRect rcBtnGetPic;
  221. rcBtnGetPic.left = rcSta17.left+3 ;
  222. rcBtnGetPic.right = rcSta17.right-3;
  223. rcBtnGetPic.top = rcBtnPlay.bottom+2;
  224. rcBtnGetPic.bottom = rcBtnGetPic.top+H;
  225. GetDlgItem(IDC_GETPICTURE)->MoveWindow( rcBtnGetPic );
  226. CRect rcBtnSet;
  227. rcBtnSet.left = rcSta17.left+3 ;
  228. rcBtnSet.right = rcSta17.right-3;
  229. rcBtnSet.top = rcBtnGetPic.bottom+2;
  230. rcBtnSet.bottom = rcBtnSet.top+H;
  231. GetDlgItem(IDC_SYSTEMCFG)->MoveWindow( rcBtnSet );
  232. CRect rcBtnPlayBack;
  233. rcBtnPlayBack.left = rcSta17.left+3 ;
  234. rcBtnPlayBack.right = rcSta17.right-3;
  235. rcBtnPlayBack.top = rcBtnSet.bottom+2;
  236. rcBtnPlayBack.bottom = rcBtnPlayBack.top+H;
  237. GetDlgItem(IDC_VIDEOFILEPLAY)->MoveWindow( rcBtnPlayBack );
  238. ////////////////
  239. CRect rcSta4;
  240. GetDlgItem(IDC_STATIC4)->GetWindowRect( rcSta4 );
  241. W = rcSta4.Width();
  242. H = rcSta4.Height();
  243. rcSta4.right = rcSta2.right;
  244. rcSta4.left = rcSta2.left ;
  245. rcSta4.top = rcSta17.bottom+20;
  246. rcSta4.bottom = rcSta4.top+H;
  247. GetDlgItem(IDC_STATIC4)->MoveWindow( rcSta4 );
  248. CRect rcBtnUp;
  249. GetDlgItem(IDC_BUTTONUP)->GetWindowRect( rcBtnUp );
  250. W = rcBtnUp.Width();
  251. H = rcBtnUp.Height();
  252. rcBtnUp.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  253. rcBtnUp.right = rcBtnUp.left+W;
  254. rcBtnUp.top = rcSta4.top+15;
  255. rcBtnUp.bottom = rcBtnUp.top+H;
  256. GetDlgItem(IDC_BUTTONUP)->MoveWindow( rcBtnUp );
  257. CRect rcSta5;
  258. GetDlgItem(IDC_STATIC5)->GetWindowRect( rcSta5 );
  259. W = rcSta5.Width();
  260. H = rcSta5.Height();
  261. rcSta5.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  262. rcSta5.right = rcBtnUp.left+W;
  263. rcSta5.top = rcBtnUp.bottom+5;
  264. rcSta5.bottom = rcSta5.top+H;
  265. GetDlgItem(IDC_STATIC5)->MoveWindow( rcSta5 );
  266. CRect rcBtnDown;
  267. GetDlgItem(IDC_BUTTONDOWN)->GetWindowRect( rcBtnDown );
  268. W = rcBtnDown.Width();
  269. H = rcBtnDown.Height();
  270. rcBtnDown.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  271. rcBtnDown.right = rcBtnDown.left+W;
  272. rcBtnDown.top = rcSta5.bottom+5;
  273. rcBtnDown.bottom = rcBtnDown.top+H;
  274. GetDlgItem(IDC_BUTTONDOWN)->MoveWindow( rcBtnDown );
  275. CRect rcBtnLeft;
  276. GetDlgItem(IDC_BUTTONLEFT)->GetWindowRect( rcBtnLeft );
  277. W = rcBtnLeft.Width();
  278. H = rcBtnLeft.Height();
  279. rcBtnLeft.right = rcSta5.left-10;
  280. rcBtnLeft.left = rcBtnLeft.right-W;
  281. rcBtnLeft.top = rcSta5.top+0;
  282. rcBtnLeft.bottom = rcBtnLeft.top+H;
  283. GetDlgItem(IDC_BUTTONLEFT)->MoveWindow( rcBtnLeft );
  284. CRect rcBtnRight;
  285. GetDlgItem(IDC_BUTTONRIGHT)->GetWindowRect( rcBtnRight );
  286. W = rcBtnRight.Width();
  287. H = rcBtnRight.Height();
  288. rcBtnRight.left = rcSta5.right+10;
  289. rcBtnRight.right = rcBtnRight.left+W;
  290. rcBtnRight.top = rcSta5.top+0;
  291. rcBtnRight.bottom = rcBtnLeft.top+H;
  292. GetDlgItem(IDC_BUTTONRIGHT)->MoveWindow( rcBtnRight );
  293. CRect rcSta6;
  294. GetDlgItem(IDC_STATIC6)->GetWindowRect( rcSta6 );
  295. W = rcSta6.Width();
  296. H = rcSta6.Height();
  297. rcSta6.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  298. rcSta6.right = rcSta6.left+W;
  299. rcSta6.top = rcBtnDown.bottom+20;
  300. rcSta6.bottom = rcSta6.top+H;
  301. GetDlgItem(IDC_STATIC6)->MoveWindow( rcSta6 );
  302. CRect rcBtnJLLeft;
  303. GetDlgItem(IDC_BUTTONTJLEFT)->GetWindowRect( rcBtnJLLeft );
  304. W = rcBtnJLLeft.Width();
  305. H = rcBtnJLLeft.Height();
  306. rcBtnJLLeft.right = rcSta6.left-10;
  307. rcBtnJLLeft.left = rcBtnJLLeft.right-W;
  308. rcBtnJLLeft.top = rcSta6.top;
  309. rcBtnJLLeft.bottom = rcBtnJLLeft.top+H;
  310. GetDlgItem(IDC_BUTTONTJLEFT)->MoveWindow( rcBtnJLLeft );
  311. CRect rcBtnJLRight;
  312. GetDlgItem(IDC_BUTTONTJRIGHT)->GetWindowRect( rcBtnJLRight );
  313. W = rcBtnJLRight.Width();
  314. H = rcBtnJLRight.Height();
  315. rcBtnJLRight.left = rcSta6.right+10;
  316. rcBtnJLRight.right = rcBtnJLRight.left+W;
  317. rcBtnJLRight.top = rcSta6.top;
  318. rcBtnJLRight.bottom = rcBtnJLRight.top+H;
  319. GetDlgItem(IDC_BUTTONTJRIGHT)->MoveWindow( rcBtnJLRight );
  320. CRect rcSta7;
  321. GetDlgItem(IDC_STATIC7)->GetWindowRect( rcSta7 );
  322. W = rcSta7.Width();
  323. H = rcSta7.Height();
  324. rcSta7.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  325. rcSta7.right = rcSta7.left+W;
  326. rcSta7.top = rcSta6.bottom+10;
  327. rcSta7.bottom = rcSta7.top+H;
  328. GetDlgItem(IDC_STATIC7)->MoveWindow( rcSta7 );
  329. CRect rcBtnOJJLeft;
  330. GetDlgItem(IDC_BUTTONJJLEFT)->GetWindowRect( rcBtnOJJLeft );
  331. W = rcBtnOJJLeft.Width();
  332. H = rcBtnOJJLeft.Height();
  333. rcBtnOJJLeft.right = rcSta7.left-10;
  334. rcBtnOJJLeft.left = rcBtnOJJLeft.right-W;
  335. rcBtnOJJLeft.top = rcSta7.top;
  336. rcBtnOJJLeft.bottom = rcBtnOJJLeft.top+H;
  337. GetDlgItem(IDC_BUTTONJJLEFT)->MoveWindow( rcBtnOJJLeft );
  338. CRect rcBtnJJRight;
  339. GetDlgItem(IDC_BUTTONJJRIGHT)->GetWindowRect( rcBtnJJRight );
  340. W = rcBtnJJRight.Width();
  341. H = rcBtnJJRight.Height();
  342. rcBtnJJRight.left = rcSta7.right+10;
  343. rcBtnJJRight.right = rcBtnJJRight.left+W;
  344. rcBtnJJRight.top = rcSta7.top;
  345. rcBtnJJRight.bottom = rcBtnJJRight.top+H;
  346. GetDlgItem(IDC_BUTTONJJRIGHT)->MoveWindow( rcBtnJJRight );
  347. CRect rcSta8;
  348. GetDlgItem(IDC_STATIC8)->GetWindowRect( rcSta8 );
  349. W = rcSta8.Width();
  350. H = rcSta8.Height();
  351. rcSta8.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  352. rcSta8.right = rcSta8.left+W;
  353. rcSta8.top = rcSta7.bottom+10;
  354. rcSta8.bottom = rcSta8.top+H;
  355. GetDlgItem(IDC_STATIC8)->MoveWindow( rcSta8 );
  356. CRect rcBtnOGQLeft;
  357. GetDlgItem(IDC_BUTTONGQLEFT)->GetWindowRect( rcBtnOGQLeft );
  358. W = rcBtnOGQLeft.Width();
  359. H = rcBtnOGQLeft.Height();
  360. rcBtnOGQLeft.right = rcSta8.left-10;
  361. rcBtnOGQLeft.left = rcBtnOGQLeft.right-W;
  362. rcBtnOGQLeft.top = rcSta8.top;
  363. rcBtnOGQLeft.bottom = rcBtnOGQLeft.top+H;
  364. GetDlgItem(IDC_BUTTONGQLEFT)->MoveWindow( rcBtnOGQLeft );
  365. CRect rcBtnGQRight;
  366. GetDlgItem(IDC_BUTTONGQRIGHT)->GetWindowRect( rcBtnGQRight );
  367. W = rcBtnGQRight.Width();
  368. H = rcBtnGQRight.Height();
  369. rcBtnGQRight.left = rcSta8.right+10;
  370. rcBtnGQRight.right = rcBtnGQRight.left+W;
  371. rcBtnGQRight.top = rcSta8.top;
  372. rcBtnGQRight.bottom = rcBtnGQRight.top+H;
  373. GetDlgItem(IDC_BUTTONGQRIGHT)->MoveWindow( rcBtnGQRight );
  374. CRect rcEditYZD;
  375. GetDlgItem(IDC_YZD)->GetWindowRect( rcEditYZD );
  376. W = rcEditYZD.Width();
  377. H = rcEditYZD.Height();
  378. rcEditYZD.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  379. rcEditYZD.right = rcEditYZD.left+W;
  380. rcEditYZD.top = rcBtnGQRight.bottom+20;
  381. rcEditYZD.bottom = rcEditYZD.top+H;
  382. GetDlgItem(IDC_YZD)->MoveWindow( rcEditYZD );
  383. CRect rcBtnYZW;
  384. GetDlgItem(IDC_BUTTONYZW)->GetWindowRect( rcBtnYZW );
  385. W = rcBtnYZW.Width();
  386. H = rcBtnYZW.Height();
  387. rcBtnYZW.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
  388. rcBtnYZW.right = rcBtnYZW.left+W;
  389. rcBtnYZW.top = rcEditYZD.bottom+3;
  390. rcBtnYZW.bottom = rcBtnYZW.top+H;
  391. GetDlgItem(IDC_BUTTONYZW)->MoveWindow( rcBtnYZW );
  392. CRect rcStaShow;
  393. rcStaShow.left = 10;
  394. rcStaShow.right = rcSta2.left-5;;
  395. rcStaShow.top = 0;
  396. rcStaShow.bottom = rMain.bottom-0;
  397. GetDlgItem(IDC_VEDIO_SHOW)->MoveWindow( rcStaShow );
  398. }
  399. void CDlg_Frame::ShowGrid()
  400. {
  401. CClientDC dc(this);
  402. HICON hIcon;
  403. CRect rc1,rc2,rc3,rc4,rc5,rc6,rc7;
  404. GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rc1 );ScreenToClient( &rc1 );
  405. GetDlgItem(IDC_STA_GRID2)->GetWindowRect( rc2 );ScreenToClient( &rc2 );
  406. GetDlgItem(IDC_STA_GRID3)->GetWindowRect( rc3 );ScreenToClient( &rc3 );
  407. GetDlgItem(IDC_STA_GRID4)->GetWindowRect( rc4 );ScreenToClient( &rc4 );
  408. GetDlgItem(IDC_STA_GRID5)->GetWindowRect( rc5 );ScreenToClient( &rc5 );
  409. GetDlgItem(IDC_STA_GRID6)->GetWindowRect( rc6 );ScreenToClient( &rc6 );
  410. //GetDlgItem(IDC_STA_GRID7)->GetWindowRect( rc7 );ScreenToClient( &rc7 );
  411. if( WINDOWNUM==1 )
  412. {
  413. hIcon = AfxGetApp()->LoadIcon(IDI_GRID1_ON);
  414. dc.DrawIcon(rc1.left,rc1.top,hIcon);
  415. }
  416. else
  417. {
  418. hIcon = AfxGetApp()->LoadIcon(IDI_GRID1_OFF);
  419. dc.DrawIcon(rc1.left,rc1.top,hIcon);
  420. }
  421. if( WINDOWNUM==4 )
  422. {
  423. hIcon = AfxGetApp()->LoadIcon(IDI_GRID4_ON);
  424. dc.DrawIcon(rc2.left,rc2.top,hIcon);
  425. }
  426. else
  427. {
  428. hIcon = AfxGetApp()->LoadIcon(IDI_GRID4_OFF);
  429. dc.DrawIcon(rc2.left,rc2.top,hIcon);
  430. }
  431. if( WINDOWNUM==9 )
  432. {
  433. hIcon = AfxGetApp()->LoadIcon(IDI_GRID9_ON);
  434. dc.DrawIcon(rc3.left,rc3.top,hIcon);
  435. }
  436. else
  437. {
  438. hIcon = AfxGetApp()->LoadIcon(IDI_GRID9_OFF);
  439. dc.DrawIcon(rc3.left,rc3.top,hIcon);
  440. }
  441. if( WINDOWNUM==16 )
  442. {
  443. hIcon = AfxGetApp()->LoadIcon(IDI_GRID16_ON);
  444. dc.DrawIcon(rc4.left,rc4.top,hIcon);
  445. }
  446. else
  447. {
  448. hIcon = AfxGetApp()->LoadIcon(IDI_GRID16_OFF);
  449. dc.DrawIcon(rc4.left,rc4.top,hIcon);
  450. }
  451. if( WINDOWNUM==36 )
  452. {
  453. hIcon = AfxGetApp()->LoadIcon(IDI_GRID32_ON);
  454. dc.DrawIcon(rc5.left,rc5.top,hIcon);
  455. }
  456. else
  457. {
  458. hIcon = AfxGetApp()->LoadIcon(IDI_GRID32_OFF);
  459. dc.DrawIcon(rc5.left,rc5.top,hIcon);
  460. }
  461. if( WINDOWNUM==64 )
  462. {
  463. hIcon = AfxGetApp()->LoadIcon(IDI_GRID64_ON);
  464. dc.DrawIcon(rc6.left,rc6.top,hIcon);
  465. }
  466. else
  467. {
  468. hIcon = AfxGetApp()->LoadIcon(IDI_GRID64_OFF);
  469. dc.DrawIcon(rc6.left,rc6.top,hIcon);
  470. }
  471. //if( WINDOWNUM==128 )
  472. //{
  473. // hIcon = AfxGetApp()->LoadIcon(IDI_GRID128_ON);
  474. // dc.DrawIcon(rc7.left,rc7.top,hIcon);
  475. //}
  476. //else
  477. //{
  478. // hIcon = AfxGetApp()->LoadIcon(IDI_GRID128_OFF);
  479. // dc.DrawIcon(rc7.left,rc7.top,hIcon);
  480. //}
  481. }
  482. void CDlg_Frame::OnPaint()
  483. {
  484. CPaintDC dc(this); // device context for painting
  485. // TODO: 在此处添加消息处理程序代码
  486. // 不为绘图消息调用 CDialog::OnPaint()
  487. ShowGrid();
  488. DrawRect();
  489. }
  490. void CDlg_Frame::OnLButtonDown(UINT nFlags, CPoint point)
  491. {
  492. // TODO: 在此添加消息处理程序代码和/或调用默认值
  493. CDialog::OnLButtonDown(nFlags, point);
  494. }
  495. void CDlg_Frame::OnLButtonUp(UINT nFlags, CPoint point)
  496. {
  497. // TODO: 在此添加消息处理程序代码和/或调用默认值
  498. WORD wndnum=0;
  499. CRect rc1,rc2,rc3,rc4,rc5,rc6,rc7;
  500. GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rc1 );ScreenToClient( &rc1 );
  501. GetDlgItem(IDC_STA_GRID2)->GetWindowRect( rc2 );ScreenToClient( &rc2 );
  502. GetDlgItem(IDC_STA_GRID3)->GetWindowRect( rc3 );ScreenToClient( &rc3 );
  503. GetDlgItem(IDC_STA_GRID4)->GetWindowRect( rc4 );ScreenToClient( &rc4 );
  504. GetDlgItem(IDC_STA_GRID5)->GetWindowRect( rc5 );ScreenToClient( &rc5 );
  505. GetDlgItem(IDC_STA_GRID6)->GetWindowRect( rc6 );ScreenToClient( &rc6 );
  506. //GetDlgItem(IDC_STA_GRID7)->GetWindowRect( rc7 );ScreenToClient( &rc7 );
  507. bool bIn = false;
  508. if( rc1.PtInRect( point ) )
  509. {
  510. wndnum = 1; bIn = true;
  511. }
  512. if( rc2.PtInRect( point ) )
  513. {
  514. wndnum = 4; bIn = true;
  515. }
  516. if( rc3.PtInRect( point ) )
  517. {
  518. wndnum = 9; bIn = true;
  519. }
  520. if( rc4.PtInRect( point ) )
  521. {
  522. wndnum = 16; bIn = true;
  523. }
  524. if( rc5.PtInRect( point ) )
  525. {
  526. wndnum = 36; bIn = true;
  527. }
  528. if( rc6.PtInRect( point ) )
  529. {
  530. wndnum = 64; bIn = true;
  531. }
  532. //if( rc7.PtInRect( point ) )
  533. //{
  534. // wndnum = 128; bIn = true;
  535. //}
  536. if( bIn && WINDOWNUM != wndnum)
  537. {
  538. m_nVedioIndex = -1;
  539. WINDOWNUM = wndnum;
  540. /*if(m_ClientParam.m_bCycling)
  541. {
  542. MessageBox("请停止循环播放!", "温馨提示", MB_ICONINFORMATION);
  543. return;
  544. }
  545. if(m_ClientParam.m_bPlaying)
  546. {
  547. TRACE("Stop Play");
  548. F_StopPlay();
  549. OnVideonetplay();
  550. }
  551. ArrayWindow(0, WINDOWNUM);
  552. MoveCurWin(WINDOWNUM,0);*/
  553. ShowGrid();
  554. }
  555. DealRect();
  556. CRect rect;
  557. GetDlgItem( IDC_VEDIO_SHOW )->GetWindowRect( rect );
  558. ScreenToClient( rect );
  559. InvalidateRect( rect );
  560. CDialog::OnLButtonUp(nFlags, point);
  561. }
  562. void CDlg_Frame::OnLButtonDblClk(UINT nFlags, CPoint point)
  563. {
  564. // TODO: 在此添加消息处理程序代码和/或调用默认值
  565. CRect rect;
  566. GetDlgItem( IDC_VEDIO_SHOW )->GetWindowRect( rect );
  567. ScreenToClient( rect );
  568. if( m_nVedioIndex==-1 )
  569. {
  570. m_Rect_DClick = rect;
  571. int W=0,H=0;
  572. int nRow=0,nCol=0;
  573. switch( WINDOWNUM )
  574. {
  575. case 1: nRow = nCol = 1; break;
  576. case 4: nRow = nCol = 2; break;
  577. case 9: nRow = nCol = 3; break;
  578. case 16: nRow = nCol = 4; break;
  579. case 36: nRow = nCol = 6; break;
  580. case 64: nRow = nCol = 8; break;
  581. }
  582. for( int i=0;i<nRow;i++ )
  583. {
  584. for( int j=0;j<nCol;j++ )
  585. {
  586. bool bIn = false;
  587. if( m_RectVideo[i][j].PtInRect( point ) )
  588. {
  589. m_nVedioIndex = nRow*i+j;
  590. }
  591. }
  592. }
  593. }
  594. else
  595. {
  596. if( rect.PtInRect( point ) )
  597. {
  598. m_nVedioIndex = -1;
  599. }
  600. }
  601. CDialog::OnLButtonDblClk(nFlags, point);
  602. }
  603. void CDlg_Frame::DealRect()
  604. {
  605. CRect rect;
  606. GetDlgItem( IDC_VEDIO_SHOW )->GetWindowRect( rect );
  607. ScreenToClient( rect );
  608. int nRow=0,nCol=0;
  609. switch( WINDOWNUM )
  610. {
  611. case 1: nRow = nCol = 1; break;
  612. case 4: nRow = nCol = 2; break;
  613. case 9: nRow = nCol = 3; break;
  614. case 16: nRow = nCol = 4; break;
  615. case 36: nRow = nCol = 6; break;
  616. case 64: nRow = nCol = 8; break;
  617. }
  618. int W=0,H=0;
  619. int W1 = rect.Width()%nRow;
  620. int H1 = rect.Height()%nCol;
  621. int W2 = rect.Width()/nRow;
  622. int H2 = rect.Height()/nCol;
  623. for( int i=0;i<VIDEO_SIZE_MAX;i++ )
  624. {
  625. m_hVideo[i].MoveWindow( CRect( -100,-100,-20,-20 ) );
  626. }
  627. int INDEX=0;
  628. for( int i=0;i<nRow;i++ )
  629. {
  630. for( int j=0;j<nCol;j++ )
  631. {
  632. if( i==nRow-1 )
  633. H = H1+H2;
  634. else
  635. H = H2;
  636. if( j==nCol-1 )
  637. W = W1+W2;
  638. else
  639. W = W2;
  640. m_RectVideo[i][j].left = rect.left + W2*j;
  641. m_RectVideo[i][j].right = m_RectVideo[i][j].left + W;
  642. m_RectVideo[i][j].top = rect.top + H2*i;
  643. m_RectVideo[i][j].bottom = m_RectVideo[i][j].top + H;
  644. m_hVideo[INDEX].MoveWindow( m_RectVideo[i][j] );
  645. INDEX++;
  646. }
  647. }
  648. }
  649. void CDlg_Frame::DrawRect()
  650. {
  651. CRect rect;
  652. GetDlgItem( IDC_VEDIO_SHOW )->GetWindowRect( rect );
  653. ScreenToClient( rect );
  654. if( m_nVedioIndex!=-1 )
  655. {
  656. }
  657. else
  658. {
  659. CClientDC dc(this);
  660. CPen pen;
  661. pen.CreatePen(PS_SOLID,1,RGB(80,80,80));
  662. dc.SelectObject(pen);
  663. int W=0,H=0;
  664. int nRow=0,nCol=0;
  665. switch( WINDOWNUM )
  666. {
  667. case 1: nRow = nCol = 1; break;
  668. case 4: nRow = nCol = 2; break;
  669. case 9: nRow = nCol = 3; break;
  670. case 16: nRow = nCol = 4; break;
  671. case 36: nRow = nCol = 6; break;
  672. case 64: nRow = nCol = 8; break;
  673. }
  674. for( int i=1;i<nRow;i++ )
  675. {
  676. dc.MoveTo( m_RectVideo[i][0].left,m_RectVideo[i][0].top );
  677. dc.LineTo( m_RectVideo[i][nCol-1].right,m_RectVideo[i][0].top );
  678. }
  679. for( int i=1;i<nCol;i++ )
  680. {
  681. dc.MoveTo( m_RectVideo[0][i].left,m_RectVideo[0][i].top );
  682. dc.LineTo( m_RectVideo[0][i].left,m_RectVideo[nRow-1][i].bottom );
  683. }
  684. DeleteObject( pen );
  685. }
  686. }
  687. void CDlg_Frame::OnBnClickedPlay()
  688. {
  689. // TODO: 在此添加控件通知处理程序代码
  690. }
  691. void CDlg_Frame::OnBnClickedGetpicture()
  692. {
  693. // TODO: 在此添加控件通知处理程序代码
  694. }
  695. void CDlg_Frame::OnBnClickedSystemcfg()
  696. {
  697. CDlg_SystemCfg dlg;
  698. dlg.DoModal();
  699. }
  700. void CDlg_Frame::OnBnClickedVideofileplay()
  701. {
  702. CDlg_PlayBack dlg;
  703. dlg.DoModal();
  704. }
  705. HBRUSH CDlg_Frame::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  706. {
  707. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  708. // TODO: 在此更改 DC 的任何属性
  709. HBRUSH B = CreateSolidBrush( g_Color1 );
  710. if( nCtlColor == CTLCOLOR_STATIC )
  711. {
  712. pDC->SetBkColor( g_Color1 );
  713. pDC->SetTextColor(RGB(255,255,255));
  714. return B;
  715. }
  716. DeleteObject( B );
  717. // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  718. return hbr;
  719. }
  720. BOOL CDlg_Frame::OnEraseBkgnd(CDC* pDC)
  721. {
  722. #if 0
  723. CRect rc;
  724. this->GetClientRect(&rc); //ScreenToClient(&rc);
  725. pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),&m_dcMemBak,
  726. 0,0,m_bmInfoBak.bmWidth-1,m_bmInfoBak.bmHeight-1,SRCCOPY);
  727. #else
  728. CBrush brush;
  729. CRect rect;
  730. COLORREF rgbBackGnd = g_Color1;//RGB( 0,0,0 ); //RGB( 59,61,63 ); //
  731. GetWindowRect(&rect);
  732. ScreenToClient(&rect);
  733. brush.CreateSolidBrush(rgbBackGnd);
  734. pDC->FillRect(rect,&brush);
  735. /////////////////////////////
  736. CRect rc1,rc2,rc3,rc4;
  737. CBrush br1;
  738. br1.CreateSolidBrush( RGB(0,0,0) );
  739. int W=0,H=0;
  740. GetDlgItem(IDC_STATIC2)->GetWindowRect( rc1 ); ScreenToClient( &rc1 );
  741. GetDlgItem(IDC_STATIC17)->GetWindowRect( rc2 ); ScreenToClient( &rc2 );
  742. GetDlgItem(IDC_STATIC4)->GetWindowRect( rc3 ); ScreenToClient( &rc3 );
  743. GetDlgItem(IDC_VEDIO_SHOW)->GetWindowRect( rc4 ); ScreenToClient( &rc4 );
  744. rect.left = rc4.right-0;
  745. rect.right = rc1.right+10;
  746. rect.top = rc1.bottom;
  747. rect.bottom = rc2.top;
  748. pDC->FillRect(rect,&br1);
  749. rect.left = rc4.right-0;
  750. rect.right = rc1.right+10;
  751. rect.top = rc2.bottom;
  752. rect.bottom = rc3.top;
  753. pDC->FillRect(rect,&br1);
  754. DeleteObject( brush );
  755. DeleteObject( br1 );
  756. #endif
  757. return TRUE;
  758. //return CDialog::OnEraseBkgnd(pDC);
  759. }