@@ -651,8 +651,6 @@ void CRecorderView::OnPaint()
651651 dcBits.CreateCompatibleDC (&dc);
652652 CBitmap bitmap;
653653
654- TRACE ( _T (" ## CRecorderView::OnPaint / rectClient.Width()=%d\n " ) , rectClient.Width () );
655-
656654 bitmap.CreateCompatibleBitmap (&dc, rectClient.Width (), rectClient.Height ());
657655 CBitmap *pOldBitmap = dcBits.SelectObject (&bitmap);
658656
@@ -1224,87 +1222,88 @@ void CRecorderView::OnRecord()
12241222 fActualRate = 0.0 ;
12251223 fTimeLength = 0.0 ;
12261224
1227- // HIER_BEN_IK
1228- // Todo: Sizing van rc checked. One pixel gets dropped: 100x100 => 99x99
1229- TRACE (" ## Here it possible goed wrong with the sizing\n " );
1225+ // r272: How we define rect cshecked and changed because some pixel gots dropped: 100x100 => 99x99
1226+ // rcUse is the rect that will be used in the end to define the size of the recording.
1227+ // BTW. rcUse is also used to store previous values.
1228+ // A Full screen area is 0, 0 to MaxX-1, MaxY-1
12301229
1230+ // TRACE( _T("## CRecorderView::OnRecord /CAPTURE_FIXED/ before / cRegionOpts / T=%d, L=%d, B=.. , R=.. , W=%d, H=%d \n"), cRegionOpts.m_iCaptureTop, cRegionOpts.m_iCaptureLeft, cRegionOpts.m_iCaptureWidth, cRegionOpts.m_iCaptureHeight );
12311231 switch (cRegionOpts.m_iMouseCaptureMode )
12321232 {
12331233 case CAPTURE_FIXED:
1234+ // Applicable when Option region is set as 'Fixed Region'
1235+
1236+
1237+ rc = CRect (cRegionOpts.m_iCaptureTop ,
1238+ cRegionOpts.m_iCaptureLeft ,
1239+ cRegionOpts.m_iCaptureLeft + cRegionOpts.m_iCaptureWidth - 1 ,
1240+ cRegionOpts.m_iCaptureTop + cRegionOpts.m_iCaptureHeight - 1 );
1241+
1242+ // TRACE( _T("## CRecorderView::OnRecord /CAPTURE_FIXED/ before / rc / T=%d, L=%d, B=%d, R=%d \n"), rc.top, rc.left, rc.bottom, rc.right );
1243+
12341244 if (cRegionOpts.m_bFixedCapture ) {
1235- // Full screan area : 0:0 to MaxX-1:MaxY-1
1236- rc.top = cRegionOpts.m_iCaptureTop ;
1237- rc.left = cRegionOpts.m_iCaptureLeft ;
1238- rc.right = cRegionOpts.m_iCaptureLeft + cRegionOpts.m_iCaptureWidth - 1 ;
1239- rc.bottom = cRegionOpts.m_iCaptureTop + cRegionOpts.m_iCaptureHeight - 1 ;
1240- // TODOMON 0s are no good anymore .. compare to minx / miny
1241- if (rc.top < 0 )
1245+ // Applicable when Option region is set as 'Fixed Region' and retangle offset is fixed either.
1246+
1247+ // I don't expect that code below is ever invoked...! Hence, dead code
1248+ if (rc.top < 0 ) {
1249+ TRACE ( _T (" ## CRecorderView::OnRecord rc.top<0 [%d]\n " ), rc.top );
12421250 rc.top = 0 ;
1243- if (rc.left < 0 )
1251+ }
1252+ if (rc.left < 0 ) {
1253+ TRACE ( _T (" ## CRecorderView::OnRecord rc.left<0 [%d]\n " ), rc.left );
12441254 rc.left = 0 ;
1245- if (maxxScreen <= rc.right )
1246- rc.right = maxxScreen - 1 ;
1247- if (maxyScreen <= rc.bottom )
1248- rc.bottom = maxyScreen - 1 ;
1255+ }
1256+ if (maxxScreen <= rc.right ) {
1257+ TRACE ( _T (" ## CRecorderView::OnRecord maxxScreen<rc.right [%d]\n " ), rc.right );
1258+ rc.right = maxxScreen - 1 ; // ok
1259+ }
1260+ if (maxyScreen <= rc.bottom ) {
1261+ TRACE ( _T (" ## CRecorderView::OnRecord maxyScreen<rc.bottom<0 [%d]\n " ), rc.bottom );
1262+ rc.bottom = maxyScreen - 1 ; // ok
1263+ }
12491264
12501265 // using protocols for iMouseCaptureMode==0
12511266 old_rcClip = rcClip = rc;
12521267 old_rcClip.NormalizeRect ();
12531268 rcUse = old_rcClip;
12541269 ::PostMessage (hWndGlobal, WM_USER_RECORDSTART, 0 , (LPARAM) 0);
12551270
1256- TRACE ( _T (" ## CRecorderView::OnRecord /0001/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1257- TRACE ( _T (" ## CRecorderView::OnRecord /0001/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
1258-
1259- } else {
1260- rc = CRect (0 , 0 , cRegionOpts.m_iCaptureWidth , cRegionOpts.m_iCaptureHeight );
1261- rc.right --;
1262- rc.bottom --;
1271+ } else {
1272+ // Applicable when Option region is set as 'Fixed Region' but retangle offset is floating.
1273+ // Floating Retangle. Drag the retangle first to its position...
12631274
12641275 ::ShowWindow (hMouseCaptureWnd,SW_SHOW);
12651276 ::UpdateWindow (hMouseCaptureWnd);
12661277
12671278 InitDrawShiftWindow (); // will affect rc implicity
1268- TRACE (_T (" ## CRecorderView::OnRecord /0002/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1269- TRACE (_T (" ## CRecorderView::OnRecord /0002/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
12701279 }
12711280 break ;
1272- case CAPTURE_VARIABLE:
1281+ case CAPTURE_VARIABLE:
1282+ // Applicable when Option region is set as 'Region'
12731283 ::ShowWindow (hMouseCaptureWnd, SW_SHOW);
12741284 ::UpdateWindow (hMouseCaptureWnd);
12751285 InitSelectRegionWindow (); // will affect rc implicity
1276- TRACE (_T (" ## CRecorderView::OnRecord /0003/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1277- TRACE (_T (" ## CRecorderView::OnRecord /0003/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
12781286 break ;
1279- case CAPTURE_FULLSCREEN:
1280- m_basicMsg = new CBasicMessage ();
1281- m_basicMsg->Create (CBasicMessage::IDD);
1282- m_basicMsg->SetText (_T (" Click on monitor to be captured." ));
1283- m_basicMsg->ShowWindow (SW_SHOW);
1284- SetCapture ();
1285- // m_basicMsg.DoModal();
1286- TRACE (_T (" ## CRecorderView::OnRecord /0004/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1287- TRACE (_T (" ## CRecorderView::OnRecord /0004/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
1288- break ;
1289- case CAPTURE_ALLSCREENS:
1290- rcUse = CRect (minxScreen, minyScreen, maxxScreen, maxyScreen);
1291- rcUse.right --;
1292- rcUse.bottom --;
1287+
1288+ case CAPTURE_ALLSCREENS:
1289+ // Applicable when Option region is set as 'Full Screen'
1290+ rcUse = CRect (minxScreen, minyScreen, maxxScreen - 1 , maxyScreen - 1 );
12931291 ::PostMessage (hWndGlobal, WM_USER_RECORDSTART, 0 , (LPARAM) 0);
1294- TRACE (_T (" ## CRecorderView::OnRecord /0005/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1295- TRACE (_T (" ## CRecorderView::OnRecord /0005/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
12961292 break ;
1293+
12971294 case CAPTURE_WINDOW:
1295+ case CAPTURE_FULLSCREEN:
1296+ // Applicable when Option region is set as 'Window' and as 'Full Screen'
12981297 m_basicMsg = new CBasicMessage ();
12991298 m_basicMsg->Create (CBasicMessage::IDD);
13001299 m_basicMsg->SetText (_T (" Click on window to be captured." ));
13011300 m_basicMsg->ShowWindow (SW_SHOW);
13021301 // m_basicMsg.DoModal();
13031302 SetCapture ();
1304- TRACE (_T (" ## CRecorderView::OnRecord /0006/ T=%d, L=%d, B=%d, R=%d \n " ), rc.top , rc.left , rc.bottom , rc.right );
1305- TRACE (_T (" ## CRecorderView::OnRecord /0006/ MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n " ), minxScreen, minyScreen, maxxScreen, maxyScreen );
13061303 break ;
13071304 }
1305+ // TRACE(_T("## CRecorderView::OnRecord / after / rc / T=%d, L=%d, B=%d, R=%d \n"), rc.top, rc.left, rc.bottom, rc.right );
1306+ // TRACE(_T("## CRecorderView::OnRecord / after / MinX=%d, MinY=%d, MaxX=%d, MaxY=%d \n"), minxScreen, minyScreen, maxxScreen, maxyScreen );
13081307}
13091308
13101309void CRecorderView::OnStop ()
@@ -3726,16 +3725,10 @@ UINT CRecorderView::RecordVideo()
37263725 strTempVideoAviFilePath.Format (" %s\\ %s-%s-%d.%s" , (LPCSTR)csTempFolder, TEMPFILETAGINDICATOR, (LPCSTR)csStartTime, rand (), " avi" );
37273726 }
37283727 }
3729- // TRACE("## CRecorderView::RecordAVIThread Final Temp.Avi file=[%s]\n", strTempVideoAviFilePath.GetString() );
3730-
3731- // int top = rcUse.top;
3732- // int left = rcUse.left;
3733- // int width = rcUse.right - rcUse.left + 1;
3734- // int height = rcUse.bottom - rcUse.top + 1;
3735- // int fps = cVideoOpts.m_iFramesPerSecond;
3728+ // TRACE(_T("## CRecorderView::RecordAVIThread Final Temp.Avi file=[%s]\n"), strTempVideoAviFilePath.GetString() );
3729+ // TRACE(_T("## CRecorderView::RecordVideo rcUse / T=%d, L=%d, B=%d, R=%d \n"), rcUse.top, rcUse.left, rcUse.bottom, rcUse.right );
37363730
37373731 return RecordVideo (rcUse, cVideoOpts.m_iFramesPerSecond , strTempVideoAviFilePath) ? 0UL : 1UL ;
3738- // return RecordVideo(top, left, width, height, fps, strTempVideoAviFilePath) ? 0UL : 1UL;
37393732}
37403733
37413734// ///////////////////////////////////////////////////////////////////////////
@@ -4146,7 +4139,8 @@ bool CRecorderView::RecordVideo(CRect rectFrame, int fps, const char *szVideoFil
41464139 // }
41474140 // }
41484141
4149- if ((0 == frametime) || (oldframetime < frametime)) {
4142+
4143+ if ( ( frametime == 0 ) || ( oldframetime < frametime ) ) {
41504144 // ver 1.8
41514145 // if (iShiftType == 1) {
41524146 // if (frametime == 0) {
0 commit comments