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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ctitleoverlayprop.cpp

?? directshow開發指南源碼第四章部分源碼,需要安裝directshow8.0以上
?? CPP
字號:
//
// CTitleOverlayProp.cpp
//

#include "streams.h"

// Eliminate two expected level 4 warnings from the Microsoft compiler.
// The class does not have an assignment or copy operator, and so cannot
// be passed by value.  This is normal.  This file compiles clean at the
// highest (most picky) warning level (-W4).
#pragma warning(disable: 4511 4512)

#include <windowsx.h>
#include <commctrl.h>
#include <olectl.h>
#include <memory.h>
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>

#include "Resource.h"            // ids used in the dialog
#include "CTitleOverlayProp.h"    // our own class
#include "OverlayDefs.h"

//
// CreateInstance
//
// Override CClassFactory method.
// Set lpUnk to point to an IUnknown interface on a new NullIPProperties object
// Part of the COM object instantiation mechanism
//
CUnknown * WINAPI CTitleOverlayProp::CreateInstance(LPUNKNOWN lpunk, HRESULT *phr)
{
	CUnknown *punk = new CTitleOverlayProp(lpunk, phr);
	if (punk == NULL) 
	{
		*phr = E_OUTOFMEMORY;
	}
	return punk;
}

// Constructs and initialises a object
CTitleOverlayProp::CTitleOverlayProp(LPUNKNOWN pUnk, HRESULT *phr)
    : CBasePropertyPage(NAME("Title Overlay Property Page"),pUnk,
        IDD_FILTER_PROP, IDS_INFO)
{
	ASSERT(phr);
	mIOverlay      = NULL;
	mIsFontChanged = FALSE;
} // CGraphInfoProp


// Override CBasePropertyPage method.
// Handles the messages for our property window
BOOL CTitleOverlayProp::OnReceiveMessage(HWND hwnd,
                                        UINT uMsg,
                                        WPARAM wParam,
                                        LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_INITDIALOG:
        {
			// Get windows' handles
			m_hOverlayType    = GetDlgItem(hwnd, IDC_COMBO_OVERLAY_TYPE);
			m_hEditTilte      = GetDlgItem(hwnd, IDC_EDIT_TITLE);
			m_hEditStartX     = GetDlgItem(hwnd, IDC_EDIT_STARTX);
			m_hEditStartY     = GetDlgItem(hwnd, IDC_EDIT_STARTY);
			m_hEditStartTime  = GetDlgItem(hwnd, IDC_EDIT_STARTTIME);
			m_hEditEndTime    = GetDlgItem(hwnd, IDC_EDIT_ENDTIME);
			m_hEditColorR     = GetDlgItem(hwnd, IDC_EDIT_COLORR);
			m_hEditColorG     = GetDlgItem(hwnd, IDC_EDIT_COLORG);
			m_hEditColorB     = GetDlgItem(hwnd, IDC_EDIT_COLORB);
			break;
        }

        case WM_COMMAND:
        {
			if (HIWORD(wParam) == BN_CLICKED)
			{
				switch (LOWORD(wParam))
				{
					case IDC_BUTTON_CHANGE_FONT:
						OnButtonChangeFont();
						break;
				}
			}
			SetDirty();
            break;
        }

    }
    return CBasePropertyPage::OnReceiveMessage(hwnd,uMsg,wParam,lParam);
} // OnReceiveMessage


// Override CBasePropertyPage method.
// Notification of which object this property page should display.
// We query the object for the IFltTrace interface.
HRESULT CTitleOverlayProp::OnConnect(IUnknown *pUnknown)
{
	HRESULT hr = pUnknown->QueryInterface(IID_ITitleOverlay, (void **) &mIOverlay);
	if (FAILED(hr))
	{
		return E_NOINTERFACE;
	}
	ASSERT(mIOverlay);

	return NOERROR;
} // OnConnect


// Override CBasePropertyPage method.
// Release the private interface, release the upstream pin.
HRESULT CTitleOverlayProp::OnDisconnect()
{
	// Release of Interface
	if (mIOverlay == NULL)
		return E_UNEXPECTED;
	mIOverlay->Release();
	mIOverlay = NULL;

	return NOERROR;
} // OnDisconnect


// We are being activated
HRESULT CTitleOverlayProp::OnActivate()
{
	FillOverlayTypeComboBox();
	ReflectOverlayType();
	ReflectOverlayStyle();
	ReflectTitle();
	ReflectTitleStartPosition();
	ReflectTitleDuration();
	ReflectTitleColor();
	ReflectTitleFont();
	return NOERROR;
} // Activate


// Changes made should be kept
HRESULT CTitleOverlayProp::OnApplyChanges()
{
	EnterOverlayType();  // This must be first invoked!!
	EnterOverlayStyle();
	EnterTitle();
	EnterTitleStartPosition();
	EnterTitleDuration();
	EnterTitleColor();
	EnterTitleFont();
	return NOERROR;
} // OnApplyChanges

//
// Sets m_hrDirtyFlag and notifies the property page site of the change
void CTitleOverlayProp::SetDirty()
{
    m_bDirty = TRUE;
    if (m_pPageSite)
    {
        m_pPageSite->OnStatusChange(PROPPAGESTATUS_DIRTY);
    }
} // SetDirty

void CTitleOverlayProp::FillOverlayTypeComboBox(void)
{
	const char * szType[] = 
	{
		"None", "Static", "System Time", "Scroll Top", "Scroll Bottom"
	};
	int enType[] = 
	{
		OT_NONE, OT_STATIC, OT_SYSTIME, OT_SCROLL_TOP, OT_SCROLL_BOTTOM
	};
	const int nCount = sizeof(szType) / sizeof(szType[0]);

	// Reset the combo box content
	SendMessage(m_hOverlayType, CB_RESETCONTENT, 0, 0);
	for (int i = 0; i < nCount; i++)
	{
		SendMessage(m_hOverlayType, CB_ADDSTRING, 0, (LPARAM)szType[i]);
		SendMessage(m_hOverlayType, CB_SETITEMDATA, i, (LPARAM)enType[i]);
	}
}

int CTitleOverlayProp::GetOverlayTypeComboIndex(int inType)
{
	// Set the first item selected
	int  nCount = SendMessage(m_hOverlayType, CB_GETCOUNT, 0, 0);
	for (int i = 0; i < nCount; i++)
	{
		int nItemData = (int) SendMessage(m_hOverlayType, CB_GETITEMDATA, i, 0);
		if (nItemData == inType)
		{
			return i;
		}
	}
	return 0;
}

void CTitleOverlayProp::ReflectOverlayType(void)
{
	long   overlayType = 0;
	mIOverlay->get_TitleOverlayType(&overlayType);
	SendMessage(m_hOverlayType, CB_SETCURSEL, GetOverlayTypeComboIndex(overlayType), 0);
}

void CTitleOverlayProp::ReflectOverlayStyle(void)
{
	BOOL  usingCover = TRUE;
	mIOverlay->get_TitleOverlayStyle(&usingCover);
	CheckRadioButton(m_hwnd, IDC_RADIO_BYCOVER, IDC_RADIO_BYREVERSE, 
		usingCover ? IDC_RADIO_BYCOVER : IDC_RADIO_BYREVERSE);
}

void CTitleOverlayProp::ReflectTitle(void)
{
	int  titleLength = 0;
	mIOverlay->get_Title(NULL, &titleLength);
	if (titleLength > 0)
	{
		char * szTitle = new char[titleLength];
		mIOverlay->get_Title(szTitle, &titleLength);
		SetWindowText(m_hEditTilte, szTitle);
		delete[] szTitle;
	}
}

void CTitleOverlayProp::ReflectTitleStartPosition(void)
{
	POINT   startPos;
	mIOverlay->get_TitleStartPosition(&startPos);
	char    szPoint[100];
	sprintf(szPoint, "%d", startPos.x);
	SetWindowText(m_hEditStartX, szPoint);
	sprintf(szPoint, "%d", startPos.y);
	SetWindowText(m_hEditStartY, szPoint);
}

void CTitleOverlayProp::ReflectTitleDuration(void)
{
	double  startTime = 0, endTime = 0; 
	mIOverlay->get_TitleDuration(&startTime, &endTime);
	char    szDuration[100];
	sprintf(szDuration, "%.2f", startTime);
	SetWindowText(m_hEditStartTime, szDuration);
	sprintf(szDuration, "%.2f", endTime);
	SetWindowText(m_hEditEndTime, szDuration);
}

void CTitleOverlayProp::ReflectTitleColor(void)
{
	BYTE  colorR, colorG, colorB;	
	mIOverlay->get_TitleColor(&colorR, &colorG, &colorB);
	char  szColor[100];
	sprintf(szColor, "%d", colorR);
	SetWindowText(m_hEditColorR, szColor);
	sprintf(szColor, "%d", colorG);
	SetWindowText(m_hEditColorG, szColor);
	sprintf(szColor, "%d", colorB);
	SetWindowText(m_hEditColorB, szColor);
	mTitleColor = RGB(colorR, colorG, colorB);
}

void CTitleOverlayProp::ReflectTitleColor(BYTE inR, BYTE inG, BYTE inB)
{
	char  szColor[100];
	sprintf(szColor, "%d", inR);
	SetWindowText(m_hEditColorR, szColor);
	sprintf(szColor, "%d", inG);
	SetWindowText(m_hEditColorG, szColor);
	sprintf(szColor, "%d", inB);
	SetWindowText(m_hEditColorB, szColor);
}

void CTitleOverlayProp::ReflectTitleFont(void)
{
	mIOverlay->get_TitleFont(&mTitleFont);
}

void CTitleOverlayProp::EnterOverlayType(void)
{
	int nSelected = SendMessage(m_hOverlayType, CB_GETCURSEL, 0, 0);
	int nType     = SendMessage(m_hOverlayType, CB_GETITEMDATA, nSelected, 0);
	mIOverlay->put_TitleOverlayType(nType);
}

void CTitleOverlayProp::EnterOverlayStyle(void)
{
	int  nChecked = IsDlgButtonChecked(m_hwnd, IDC_RADIO_BYCOVER);
	mIOverlay->put_TitleOverlayStyle(nChecked);
}

void CTitleOverlayProp::EnterTitle(void)
{
	char szTitle[2000];
	if (GetWindowText(m_hEditTilte, szTitle, 2000))
	{
		mIOverlay->put_Title(szTitle, strlen(szTitle));
	}
	else
	{
		mIOverlay->put_Title("", 0);
	}
}

void CTitleOverlayProp::EnterTitleStartPosition(void)
{
	POINT   startPos;	
	char    szPos[100];
	GetWindowText(m_hEditStartX, szPos, 100);
	startPos.x = atoi(szPos);
	GetWindowText(m_hEditStartY, szPos, 100);
	startPos.y = atoi(szPos);
	mIOverlay->put_TitleStartPosition(startPos);
}

void CTitleOverlayProp::EnterTitleDuration(void)
{
	char    szDuration[100];
	GetWindowText(m_hEditStartTime, szDuration, 100);
	double startTime = atof(szDuration);
	GetWindowText(m_hEditEndTime, szDuration, 100);
	double endTime   = atof(szDuration);
	mIOverlay->put_TitleDuration(startTime, endTime);
}

void CTitleOverlayProp::EnterTitleColor(void)
{
	BYTE  colorR = 0, colorG = 0, colorB = 0;	
	char  szColor[100];
	GetWindowText(m_hEditColorR, szColor, 100);
	colorR = atoi(szColor);
	GetWindowText(m_hEditColorG, szColor, 100);
	colorG = atoi(szColor);
	GetWindowText(m_hEditColorB, szColor, 100);
	colorB = atoi(szColor);
	mIOverlay->put_TitleColor(colorR, colorG, colorB);
}

void CTitleOverlayProp::EnterTitleFont(void)
{
	if (mIsFontChanged)
	{
		mIOverlay->put_TitleFont(mTitleFont);
	}
}

void CTitleOverlayProp::OnButtonChangeFont(void)
{
	// Update the RGB values
	BYTE  colorR = 0, colorG = 0, colorB = 0;	
	char  szColor[100];
	GetWindowText(m_hEditColorR, szColor, 100);
	colorR = atoi(szColor);
	GetWindowText(m_hEditColorG, szColor, 100);
	colorG = atoi(szColor);
	GetWindowText(m_hEditColorB, szColor, 100);
	colorB = atoi(szColor);
	mTitleColor = RGB(colorR, colorG, colorB);

	CHOOSEFONT    cf;
	// Initialize CHOOSEFONT
	ZeroMemory(&cf, sizeof(CHOOSEFONT));
	cf.lStructSize = sizeof(CHOOSEFONT);
	cf.hInstance   = g_hInst;
	cf.hwndOwner   = m_hwnd;
	cf.lpLogFont   = &mTitleFont;
	cf.rgbColors   = mTitleColor;
	cf.Flags       = CF_SCREENFONTS | CF_EFFECTS | CF_INITTOLOGFONTSTRUCT;
	if (ChooseFont(&cf)) 
	{
		mIsFontChanged = TRUE;
		// Update the text color
		mTitleColor    = cf.rgbColors;
		ReflectTitleColor(GetRValue(mTitleColor), GetGValue(mTitleColor), GetBValue(mTitleColor));
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女主播av| 国产综合色在线| 樱花影视一区二区| 狠狠色伊人亚洲综合成人| 91福利在线看| 国产日韩欧美电影| 免费不卡在线视频| 欧美影院午夜播放| 国产精品乱码一区二区三区软件| 天天综合色天天| 色婷婷综合五月| 中文字幕亚洲欧美在线不卡| 韩国av一区二区三区在线观看| 国产欧美一区二区精品性| 在线亚洲人成电影网站色www| 久久久久久免费| 久久99精品网久久| 日韩视频一区在线观看| 亚洲成a人片综合在线| 97aⅴ精品视频一二三区| 久久久精品国产99久久精品芒果| 免费观看久久久4p| 欧美老女人第四色| 亚洲1区2区3区4区| 欧美乱妇23p| 午夜欧美在线一二页| 欧美性感一类影片在线播放| 亚洲欧美色一区| 91在线免费播放| 亚洲欧美偷拍另类a∨色屁股| 99精品视频一区二区| 成人免费一区二区三区视频 | 国产欧美精品日韩区二区麻豆天美| 日韩在线一区二区| 这里只有精品99re| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品国产欧美一区二区| 日韩国产欧美三级| 精品国产一二三| 国产成人免费视频一区| 国产精品污www在线观看| 成人深夜在线观看| 亚洲久本草在线中文字幕| 日本道精品一区二区三区| 亚洲成人综合在线| 欧美r级电影在线观看| 国产盗摄视频一区二区三区| 国产精品久久久一区麻豆最新章节| 99久久99久久精品免费观看| 亚洲一区在线观看网站| 日韩欧美亚洲国产另类 | 日韩免费一区二区| 国产一区二区三区在线观看免费视频| 国产欧美日韩另类视频免费观看| 91欧美激情一区二区三区成人| 亚洲激情五月婷婷| 欧美大片日本大片免费观看| 国产 欧美在线| 亚洲综合区在线| 精品国产凹凸成av人网站| aaa亚洲精品| 视频一区欧美精品| 国产精品少妇自拍| 欧美欧美欧美欧美首页| 国产真实乱偷精品视频免| 亚洲精品视频一区二区| 欧美一区二区三区系列电影| 成人在线一区二区三区| 亚洲sss视频在线视频| 久久久久成人黄色影片| 欧美性猛交xxxxxx富婆| 国产精品白丝jk白祙喷水网站| 亚洲一区二区在线视频| 久久这里只有精品首页| 欧洲一区二区av| 国产精品资源站在线| 亚洲国产日韩综合久久精品| 国产视频一区二区在线观看| 欧美日韩1区2区| 99国产精品国产精品久久| 久久99精品久久久久久| 亚洲中国最大av网站| 中文欧美字幕免费| 日韩欧美的一区二区| 色国产综合视频| 成人性生交大片免费看中文 | 久久综合精品国产一区二区三区| 色婷婷综合在线| 成人毛片视频在线观看| 国产综合色在线视频区| 日日夜夜免费精品视频| 亚洲综合一二三区| 中文字幕中文在线不卡住| 亚洲精品一区二区三区99| 欧美日韩一级大片网址| 91在线观看地址| 国产成人午夜电影网| 久久精品国产99国产精品| 天天亚洲美女在线视频| 亚洲成人自拍网| 一卡二卡三卡日韩欧美| 亚洲精品第一国产综合野| 中文字幕乱码日本亚洲一区二区| 久久在线观看免费| 久久这里只有精品首页| 亚洲精品一区二区三区影院 | 欧美一区二区成人6969| 91国产丝袜在线播放| 日本伦理一区二区| 成人黄色a**站在线观看| 国产成人免费视频精品含羞草妖精 | 国产精品传媒在线| 国产精品亲子乱子伦xxxx裸| 国产三级一区二区| 国产三级欧美三级| 中文字幕乱码一区二区免费| 国产精品日韩精品欧美在线 | 国产视频一区不卡| 中文字幕av一区二区三区免费看 | 久久综合九色综合97婷婷女人| 日韩一区二区免费在线电影| 欧美一区二区成人| 欧美精品一区二区久久久| 久久夜色精品国产噜噜av| 欧美一区二区视频免费观看| 日韩一二三区不卡| 欧美成va人片在线观看| 国产欧美在线观看一区| 亚洲丝袜美腿综合| 亚洲一区二区3| 美女视频网站久久| 国产福利一区在线| 91在线视频在线| 欧美福利视频一区| 欧美成人精精品一区二区频| 欧美精品一区二区三区视频| 国产精品欧美久久久久一区二区| 最新久久zyz资源站| 天使萌一区二区三区免费观看| 久久精品国产久精国产| 国产成人av福利| 欧美影院精品一区| xfplay精品久久| 国产精品免费观看视频| 亚洲综合一区在线| 国产乱码精品一区二区三区av| 成人激情文学综合网| 欧美日韩免费观看一区三区| 久久看人人爽人人| 亚洲一线二线三线久久久| 精品伊人久久久久7777人| av在线播放不卡| 欧美一级一级性生活免费录像| 国产午夜三级一区二区三| 亚洲精品欧美激情| 九色综合国产一区二区三区| 91丨九色丨蝌蚪富婆spa| 日韩一区二区在线看片| 成人欧美一区二区三区1314| 久久不见久久见中文字幕免费| 91丨九色丨黑人外教| 日韩久久精品一区| 亚洲精品中文字幕乱码三区| 精品亚洲国产成人av制服丝袜 | 亚洲免费观看在线观看| 麻豆成人久久精品二区三区红| 91免费视频网| 久久久www免费人成精品| 偷拍亚洲欧洲综合| 色94色欧美sute亚洲线路一ni | 久久久久久影视| 亚洲va国产天堂va久久en| www.一区二区| 精品国产一区二区三区久久久蜜月| 亚洲一区中文在线| 色综合婷婷久久| 中文字幕精品在线不卡| 极品瑜伽女神91| 91精品国产综合久久久蜜臀粉嫩 | 欧美视频一区二区在线观看| 国产精品的网站| 成人av在线网站| 欧美精品一区二区三区一线天视频| 午夜电影久久久| 欧美午夜电影在线播放| 亚洲码国产岛国毛片在线| av在线播放一区二区三区| 国产欧美日韩视频一区二区| 国产美女久久久久| 精品国产网站在线观看| 美女在线观看视频一区二区| 91精品国产91久久久久久一区二区 | 欧美aaaaaa午夜精品| 欧美一级艳片视频免费观看| 亚洲成年人网站在线观看| 在线视频国产一区| 一区二区在线免费观看| 在线观看精品一区| 午夜激情综合网| 日韩一级片在线播放|