亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? videownd.cpp

?? nettalk
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
//NetTalk
/*------------------------------------------------------------------------------*\
 =============================
   模塊名稱: VideoWnd.cpp
 =============================
 //Download by http://www.codefans.net
 [版權(quán)]
 
   2000-2002  115軟件工廠  版權(quán)所有
                                              
\*------------------------------------------------------------------------------*/
#include "WndX.h"
#include "WindowsX.h"
#include "AVIOMgr.h"
#include "VideoWnd.h"

#include "resource.h"
#include <Stdio.h>


/*------------------------------------------------------------------------------*/
extern CAVIOMgr AVIO;
/*------------------------------------------------------------------------------*/
//copied from MSDN,and modified a little
BOOL SaveBitmapFile(HDC hDC, HBITMAP hBmp, PSTR pszFileName)
{ 
	int hFile;
	OFSTRUCT    ofReOpenBuff; 
	HBITMAP     hTmpBmp, hBmpOld;
	BOOL        bSuccess;  
	BITMAPFILEHEADER    bfh;    
	PBITMAPINFO pbmi;    
	PBYTE       pBits;   
	BITMAPINFO  bmi;    
	PBYTE pjTmp, pjTmpBmi;   
	ULONG sizBMI;    
	bSuccess = TRUE; 
	if (!hBmp) 
	{      

		return FALSE;
	}
	// Let the graphics engine to retrieve the dimension of the bitmap for us 
	// GetDIBits uses the size to determine if it's BITMAPCOREINFO or BITMAPINFO 
	// if BitCount != 0, color table will be retrieved   
	bmi.bmiHeader.biSize = 0x28;  	// GDI need this to work 
	bmi.bmiHeader.biBitCount = 0;   // don't get the color table 
	if ((GetDIBits(hDC, hBmp, 0, 0, (LPSTR)NULL, &bmi, DIB_RGB_COLORS)) == 0) 
	{ 
		return FALSE;
	}
	// Now that we know the size of the image, alloc enough memory to retrieve    
	// the actual bits   
	if ((pBits = (PBYTE)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT,bmi.bmiHeader.biSizeImage)) == NULL)
	{ 
		return FALSE;  
	} 
	// Note: 24 bits per pixel has no color table.  So, we don't have to    
	// allocate memory for retrieving that.  Otherwise, we do.   
	pbmi = &bmi;                           
	// assume no color table  
	switch (bmi.bmiHeader.biBitCount)
	{  
	case 24:                                      // has color table    
		sizBMI = sizeof(BITMAPINFOHEADER);  
		break;
	case 16:   
	case 32:  
		sizBMI = sizeof(BITMAPINFOHEADER)+sizeof(DWORD)*3;
		break;
	default:      
		sizBMI = sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*(1<<bmi.bmiHeader.biBitCount);  
		break;   
	}      //     // Allocate memory for color table if it is not 24bpp...     //   
	if (sizBMI != sizeof(BITMAPINFOHEADER))
	{ 
		ULONG       sizTmp;         //         // I need more memory for the color table         //   
		if ((pbmi = (PBITMAPINFO)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, sizBMI )) == NULL)
		{
			bSuccess = FALSE;    
			goto ErrExit1; 
		}         //         // Now that we've a bigger chunk of memory, let's copy the Bitmap    
		// info header data over         // 
		pjTmp = (PBYTE)pbmi;
		pjTmpBmi = (PBYTE)&bmi; 
		sizTmp = sizeof(BITMAPINFOHEADER);
		while(sizTmp--)   
		{   
			*(((PBYTE)pjTmp)++) = *((pjTmpBmi)++);  
		}
	}      //     // Let's open the file and get ready for writing     //    
	if ((hFile = OpenFile(pszFileName, (LPOFSTRUCT)&ofReOpenBuff,OF_CREATE | OF_WRITE)) == -1)
	{ 
		goto ErrExit2; 
	}      //     // But first, fill in the info for the BitmapFileHeader     // 
	bfh.bfType = 0x4D42;                            // 'BM'   
	bfh.bfSize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizBMI+pbmi->bmiHeader.biSizeImage;  
	bfh.bfReserved1 =bfh.bfReserved2 = 0;
	bfh.bfOffBits = sizeof(BITMAPFILEHEADER)+sizBMI;      //     // Write out the file header now     //   
	if (_lwrite(hFile, (LPSTR)&bfh, sizeof(BITMAPFILEHEADER)) == -1) 
	{
		bSuccess = FALSE;    
		goto ErrExit3;
	}      //     // Bitmap can't be selected into a DC when calling GetDIBits   
	// Assume that the hDC is the DC where the bitmap would have been selected     
	// if indeed it has been selected     //    
	if (hTmpBmp = CreateCompatibleBitmap(hDC, pbmi->bmiHeader.biWidth, pbmi->bmiHeader.biHeight)) 
	{       
		hBmpOld = (HBITMAP)SelectObject(hDC, hTmpBmp);   
		if ((GetDIBits(hDC, hBmp, 0, pbmi->bmiHeader.biHeight, (LPSTR)pBits, pbmi, DIB_RGB_COLORS))==0)
		{  
			bSuccess = FALSE;    
			goto ErrExit4;     
		} 
	} 
	else
	{ 
		bSuccess = FALSE;   
		goto ErrExit3;
	}      //     // Now write out the BitmapInfoHeader and color table, if any     //  
	if (_lwrite(hFile, (LPSTR)pbmi, sizBMI) == -1) 
	{
		bSuccess = FALSE;    
		goto ErrExit4; 
	}      //     // write the bits also     //   
	if (_lwrite(hFile, (LPSTR)pBits, pbmi->bmiHeader.biSizeImage) == -1)
	{ 
		bSuccess = FALSE;      
		goto ErrExit4;    
	} 
ErrExit4:  
	SelectObject(hDC, hBmpOld);
	DeleteObject(hTmpBmp); 
ErrExit3:  
	_lclose(hFile);
ErrExit2:    
	GlobalFree(pbmi);
ErrExit1:
	GlobalFree(pBits);    
	return bSuccess;
} 
/*------------------------------------------------------------------------------*/
CVideoWnd::CVideoWnd()
{

}
/*------------------------------------------------------------------------------*/
CVideoWnd::~CVideoWnd()
{

}
/*------------------------------------------------------------------------------*/
LRESULT CVideoWnd::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
			case IDC_SAVEFRAME://save the current frame to file
				{
					if(IsWindowVisible(m_vs))
					{
						char szPath[256];
						GetModuleFileName(0,szPath,255);
						int i;
						for(i=strlen(szPath);i>0;i--)
						{
							if(szPath[i]=='\\')
							{
								szPath[i+1]=0;
								break;
							}
						}
						//use the time as the file name
						SYSTEMTIME st;
						GetLocalTime(&st);
						char szFileName[50];
						sprintf(szFileName,"photos\\%d_%d_%d_%d.bmp",st.wHour,st.wMinute,st.wSecond,st.wMilliseconds);
						strcat(szPath,szFileName);
						HDC hdc=GetDC(m_hWnd);
						SaveBitmapFile(hdc,m_vs.m_hBmp,szPath);

						ReleaseDC(m_hWnd,hdc);
					}
				}
				break;
			case IDC_ZOOM:
				{
					if(m_bZoomed)
					{

						POINT pt[5]={{0,11},{11,0},{184,0},{184,168},{0,168}};
						HRGN hrgn=CreatePolygonRgn(pt,5,ALTERNATE);

						SetWindowPos(m_hWnd,0,0,0,184,168,SWP_NOMOVE);
						SetWindowRgn(m_hWnd,hrgn,0);
						m_bZoomed=FALSE;
						SetRect(&m_rc,0,0,184,168);
						SetRect(&m_rcVideo,4,20,180,164);


						SetWindowPos(m_vs,0,0,0,m_rcVideo.Width(),m_rcVideo.Height(),SWP_NOMOVE);
						InvalidateRect(m_hWnd,0,TRUE);


						SetWindowPos(m_btnClose,0,167,5,0,0,SWP_NOSIZE);
					}
					else
					{
						POINT pt[5]={{0,11},{11,0},{360,0},{360,312},{0,312}};
						HRGN hrgn=CreatePolygonRgn(pt,5,ALTERNATE);
						SetWindowPos(m_hWnd,0,0,0,360,312,SWP_NOMOVE);													
						SetWindowRgn(m_hWnd,hrgn,FALSE);
						m_bZoomed=TRUE;
						SetRect(&m_rc,0,0,360,312);
						SetRect(&m_rcVideo,4,20,356,308);
						

						SetWindowPos(m_vs,0,0,0,m_rcVideo.Width(),m_rcVideo.Height(),SWP_NOMOVE);
						InvalidateRect(m_hWnd,0,TRUE);
						SetWindowPos(m_btnClose,0,343,5,0,0,SWP_NOSIZE);
					}
				}
				break;
			case IDC_CLOSE:
				SendMessage(m_hWnd,WM_CLOSE,0,0);
				break;
			}
		}
		break;
	case WM_INITDIALOG:
		return OnInitDialog();
		break;
	
	case WM_MOUSEMOVE:
		{
			POINT point;
			point.x=GET_X_LPARAM(lParam); 
			point.y=GET_Y_LPARAM(lParam); 
			OnMouseMove(wParam,point);
		}
		break;
	case WM_LBUTTONDOWN:
		{
			POINT point;
			point.x=GET_X_LPARAM(lParam); 
			point.y=GET_Y_LPARAM(lParam); 
			OnLButtonDown(wParam,point);	
		}
		break;
	case WM_CLOSE:
		if(m_bLocal)
			SendMessage(GetParent(m_hWnd),WM_COMMAND,IDC_VIDEO_LOCAL,0);
		else
			SendMessage(GetParent(m_hWnd),WM_COMMAND,IDC_VIDEO_OUTVIEW,0);
		break;
	
	case WM_DESTROY:
		OnDestroy();
		break;
	
	case WM_ERASEBKGND:
		return OnEraseBkgnd((HDC)wParam);
		break;
	case WM_TIMER:
		OnTimer(wParam);
		break;
	
	default:
		return CDialogX::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;
}

/*------------------------------------------------------------------------------*/

BOOL CVideoWnd::OnInitDialog()
{
	
	POINT pt[5]={{0,11},{11,0},{184,0},{184,168},{0,168}};
	HRGN hrgn=CreatePolygonRgn(pt,5,ALTERNATE);
	
	
	SetWindowRgn(m_hWnd,hrgn,0);
	
	

	POINT pt2[5]={{2,11},{11,2},{119,2},{105,16,},{2,15}};
	
	m_hrgnTitle=CreatePolygonRgn(pt2,5,ALTERNATE);
	
	
	SetRect(&m_rcVideo,4,20,180,164);

	SetRect(&m_rcTitle,2,2,119,16);
	
	m_bZoomed=FALSE;
	m_bHilight=FALSE;
	
	m_btnZoom.LoadBitmaps(IDB_ZOOM1,IDB_ZOOM2,IDB_ZOOM3);
	m_btnZoom.Associate(m_hWnd,IDC_ZOOM);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区三区| 日本在线不卡视频| 欧美一级生活片| 国产一区二区看久久| 夜夜亚洲天天久久| 久久久久久免费| 欧美精品一二三| 91亚洲男人天堂| 国产精品资源网| 天天av天天翘天天综合网 | 91蝌蚪porny| 黄色精品一二区| 亚洲高清在线视频| 国产精品久久久久久久久动漫| 91麻豆精品国产91久久久久| 99精品桃花视频在线观看| 激情久久五月天| 亚洲国产精品久久艾草纯爱| 欧美国产乱子伦 | 樱桃视频在线观看一区| 久久久一区二区| 91精品国产一区二区三区| 一本久久综合亚洲鲁鲁五月天| 国产精品18久久久久| 日韩极品在线观看| 亚洲福利一区二区| 亚洲在线视频网站| 亚洲色图色小说| 亚洲欧洲另类国产综合| 国产区在线观看成人精品 | 亚洲女厕所小便bbb| 久久精品视频在线免费观看| 欧美一区二区视频网站| 欧美日韩国产电影| 欧美午夜精品一区二区蜜桃| 色综合天天综合狠狠| 国产91对白在线观看九色| 精品一区免费av| 欧美日本国产视频| 在线视频国产一区| 日本高清视频一区二区| 色94色欧美sute亚洲线路一ni| 99免费精品视频| 99久久精品情趣| 91一区在线观看| 91在线视频免费观看| 99久久99久久久精品齐齐| 成人妖精视频yjsp地址| 成人精品视频一区| av中文字幕不卡| 日本福利一区二区| 欧美日韩亚洲综合在线| 欧美日韩国产中文| 欧美一二三四区在线| 日韩美女一区二区三区四区| 久久久久久久久蜜桃| 欧美激情一区二区三区蜜桃视频 | 亚洲亚洲人成综合网络| 亚洲成人av一区二区三区| 丝袜亚洲精品中文字幕一区| 免费看日韩精品| 国产精品一区二区视频| 成人黄色综合网站| 色噜噜狠狠色综合中国| 欧美日韩国产成人在线免费| 欧美大片一区二区| 欧美激情一区二区三区全黄| 粉嫩久久99精品久久久久久夜 | 日韩一级大片在线| 国产日韩欧美电影| 亚洲久草在线视频| 蜜桃av一区二区三区电影| 国产一区二区三区四区在线观看| 成人白浆超碰人人人人| 欧美日韩国产综合一区二区三区| 日韩精品一区二区三区中文精品| 日本一区二区成人在线| 亚洲精品视频观看| 蜜桃免费网站一区二区三区| 国产成人超碰人人澡人人澡| 色噜噜夜夜夜综合网| 精品国产乱码久久久久久闺蜜 | 国产亚洲一区二区三区| 亚洲精品久久久蜜桃| 久久成人久久爱| 日本久久一区二区三区| 欧美xxxx老人做受| 一区二区三区电影在线播| 精品一区精品二区高清| 欧洲人成人精品| 国产日韩欧美高清在线| 日本在线不卡视频| 日本精品视频一区二区| 精品国产91九色蝌蚪| 亚洲一区在线观看视频| 国产精品99久久久久久似苏梦涵| 欧洲精品在线观看| 欧美国产综合色视频| 麻豆国产91在线播放| 色综合色综合色综合色综合色综合 | 久久婷婷色综合| 亚洲国产精品久久久久婷婷884| 大白屁股一区二区视频| 日韩欧美自拍偷拍| 亚洲影院久久精品| 不卡视频在线观看| ww久久中文字幕| 青青青爽久久午夜综合久久午夜| 91麻豆精东视频| 国产欧美精品一区| 精品一区二区三区的国产在线播放 | 国产乱码精品一品二品| 在线不卡中文字幕播放| 亚洲人亚洲人成电影网站色| 国产一区二区三区在线观看免费视频| 欧美日韩国产大片| 亚洲一区二三区| 成人18视频日本| 国产日产欧美精品一区二区三区| 久久99热国产| 欧美精品一卡两卡| 亚洲一区二区三区视频在线| 成人aaaa免费全部观看| 日本一区二区三区dvd视频在线| 美女视频第一区二区三区免费观看网站 | 日韩一区精品字幕| 亚洲精品大片www| 91在线播放网址| 国产精品另类一区| 成人少妇影院yyyy| 国产欧美日韩另类视频免费观看| 国产尤物一区二区| 精品国产污网站| 久久99久久久久| 精品国产a毛片| 精品亚洲免费视频| 久久在线观看免费| 国产成人丝袜美腿| 欧美国产禁国产网站cc| 成人午夜电影网站| 中文字幕一区二区三区av | 欧美一区二区三区爱爱| 香蕉久久夜色精品国产使用方法| 欧美亚洲动漫精品| 亚洲狠狠爱一区二区三区| 在线观看av一区二区| 亚洲国产视频直播| 欧美顶级少妇做爰| 麻豆91精品视频| 久久精品亚洲国产奇米99| 国产v日产∨综合v精品视频| 亚洲国产精品二十页| 91视视频在线观看入口直接观看www | 国产丝袜在线精品| 成人av电影观看| 亚洲在线一区二区三区| 欧美一区二区免费视频| 久88久久88久久久| 国产精品入口麻豆原神| 一本大道久久a久久精品综合| 亚洲一区二区三区不卡国产欧美| 欧美日韩1234| 国内成人自拍视频| 1024成人网色www| 精品视频在线免费观看| 精品一区二区三区av| 一区二区中文视频| 欧美三级一区二区| 国产一区二区三区久久悠悠色av| 国产精品日韩精品欧美在线| 一本大道久久a久久综合婷婷| 偷拍与自拍一区| 国产日韩欧美高清在线| 91国产视频在线观看| 久久精品av麻豆的观看方式| 国产精品久久久久久亚洲毛片| 欧美午夜精品电影| 国产精品456| 亚洲亚洲人成综合网络| 久久夜色精品国产欧美乱极品| 91美女蜜桃在线| 精品一区二区精品| 亚洲国产视频一区| 国产三级精品三级| 欧美色图一区二区三区| 国产精品18久久久久久vr| 亚洲综合色婷婷| 久久精品人人做| 欧美精品免费视频| av一二三不卡影片| 老司机午夜精品99久久| 亚洲主播在线观看| 久久精品一区二区三区av| 欧美日韩国产在线观看| caoporn国产一区二区| 看电视剧不卡顿的网站| 亚洲欧美偷拍三级| 国产色一区二区| 日韩无一区二区| 欧美性受xxxx|