cresizeborders.cpp
来自「从FFMPEG转换而来的H264解码程序,VC下编译..」· C++ 代码 · 共 122 行
CPP
122 行
/*
* Copyright (c) 2005,2006 Milan Cutka
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "stdafx.h"
#include "CresizeBorders.h"
#include "TresizeAspectSettings.h"
void TresizeBordersPage::init(void)
{
tbrSetRange(IDC_TBR_BORDER_HORIZ_PERCENT,0,100);
tbrSetRange(IDC_TBR_BORDER_VERT_PERCENT ,0,100);
tbrSetRange(IDC_TBR_BORDER_HORIZ_PIXELS,0,300);
tbrSetRange(IDC_TBR_BORDER_VERT_PIXELS ,0,300);
}
void TresizeBordersPage::cfg2dlg(void)
{
int inside=cfgGet(IDFF_bordersInside);
setCheck(IDC_RBT_BORDER_INSIDE,inside==1);setCheck(IDC_RBT_BORDER_OUTSIDE,inside==0);
int units=cfgGet(IDFF_bordersUnits);
int lock=cfgGet(IDFF_bordersLocked);
setCheck(IDC_CHB_BORDERSLOCKED,lock);enable(!lock,IDC_LBL_BORDER_VERT);
static const int idHorizPercent[]={IDC_LBL_BORDER_HORIZ_PERCENT,IDC_TBR_BORDER_HORIZ_PERCENT,0};
static const int idVertPercent[] ={IDC_LBL_BORDER_VERT_PERCENT ,IDC_TBR_BORDER_VERT_PERCENT ,0};
static const int idHorizPixels[]={IDC_LBL_BORDER_HORIZ_PIXELS,IDC_TBR_BORDER_HORIZ_PIXELS,0};
static const int idVertPixels[] ={IDC_LBL_BORDER_VERT_PIXELS ,IDC_TBR_BORDER_VERT_PIXELS ,0};
setCheck(IDC_RBT_BORDER_PERCENT,units==0);enable(units==0,idHorizPercent);enable(units==0 && !lock,idVertPercent);
setCheck(IDC_RBT_BORDER_PIXELS ,units==1);enable(units==1,idHorizPixels );enable(units==1 && !lock,idVertPixels );
int x;
x=cfgGet(IDFF_bordersPercentX);tbrSet(IDC_TBR_BORDER_HORIZ_PERCENT,x);setText(IDC_LBL_BORDER_HORIZ_PERCENT,_l("%i%%"),x);
x=cfgGet(IDFF_bordersPercentY);tbrSet(IDC_TBR_BORDER_VERT_PERCENT ,x);setText(IDC_LBL_BORDER_VERT_PERCENT ,_l("%i%%"),x);
tbrSet(IDC_TBR_BORDER_HORIZ_PIXELS,cfgGet(IDFF_bordersPixelsX),IDC_LBL_BORDER_HORIZ_PIXELS);
tbrSet(IDC_TBR_BORDER_VERT_PIXELS ,cfgGet(IDFF_bordersPixelsY),IDC_LBL_BORDER_VERT_PIXELS );
}
INT_PTR TresizeBordersPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_HSCROLL:
switch (getId(HWND(lParam)))
{
case IDC_TBR_BORDER_HORIZ_PERCENT:
case IDC_TBR_BORDER_VERT_PERCENT:
cfgSet(IDFF_bordersPercentX,tbrGet(IDC_TBR_BORDER_HORIZ_PERCENT));
cfgSet(IDFF_bordersPercentY,tbrGet(cfgGet(IDFF_bordersLocked)?IDC_TBR_BORDER_HORIZ_PERCENT:IDC_TBR_BORDER_VERT_PERCENT));
cfg2dlg();
return TRUE;
case IDC_TBR_BORDER_HORIZ_PIXELS:
case IDC_TBR_BORDER_VERT_PIXELS:
cfgSet(IDFF_bordersPixelsX,tbrGet(IDC_TBR_BORDER_HORIZ_PIXELS));
cfgSet(IDFF_bordersPixelsY,tbrGet(cfgGet(IDFF_bordersLocked)?IDC_TBR_BORDER_HORIZ_PIXELS:IDC_TBR_BORDER_VERT_PIXELS));
cfg2dlg();
return TRUE;
}
break;
}
return TconfPageDecVideo::msgProc(uMsg,wParam,lParam);
}
void TresizeBordersPage::onLock(void)
{
cfgSet(IDFF_bordersLocked,getCheck(IDC_CHB_BORDERSLOCKED));
cfgSet(IDFF_bordersPercentY,cfgGet(IDFF_bordersPercentX));
cfgSet(IDFF_bordersPixelsY,cfgGet(IDFF_bordersPixelsX));
cfg2dlg();
}
Twidget* TresizeBordersPage::createDlgItem(int id,HWND h)
{
if (id==IDC_TBR_BORDER_HORIZ_PIXELS || id==IDC_TBR_BORDER_HORIZ_PERCENT || id==IDC_TBR_BORDER_VERT_PIXELS || id==IDC_TBR_BORDER_VERT_PERCENT)
return new TwidgetSubclassTbr(h,this,NULL);
else
return TconfPageDecVideo::createDlgItem(id,h);
}
int TresizeBordersPage::getTbrIdff(int id,const TbindTrackbars bind)
{
switch (id)
{
case IDC_TBR_BORDER_HORIZ_PERCENT:return IDFF_bordersPercentX;
case IDC_TBR_BORDER_VERT_PERCENT :return IDFF_bordersPercentY;
case IDC_TBR_BORDER_HORIZ_PIXELS :return IDFF_bordersPixelsX;
case IDC_TBR_BORDER_VERT_PIXELS :return IDFF_bordersPixelsY;
default:return 0;
}
}
TresizeBordersPage::TresizeBordersPage(TffdshowPageDec *Iparent,const TfilterIDFF *idff):TconfPageDecVideo(Iparent,idff,2)
{
dialogId=IDD_RESIZEBORDERS;
static const TbindRadiobutton<TresizeBordersPage> rbt[]=
{
IDC_RBT_BORDER_INSIDE ,IDFF_bordersInside,1,&TresizeBordersPage::cfg2dlg,
IDC_RBT_BORDER_OUTSIDE,IDFF_bordersInside,0,&TresizeBordersPage::cfg2dlg,
IDC_RBT_BORDER_PERCENT,IDFF_bordersUnits,0,&TresizeBordersPage::cfg2dlg,
IDC_RBT_BORDER_PIXELS ,IDFF_bordersUnits,1,&TresizeBordersPage::cfg2dlg,
0,0,0,NULL
};
bindRadioButtons(rbt);
static const TbindButton<TresizeBordersPage> bt[]=
{
IDC_CHB_BORDERSLOCKED,&TresizeBordersPage::onLock,
0,NULL
};
bindButtons(bt);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?