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

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

?? curtainboxdlg.cpp

?? VC界面類編程技巧大全附源碼(DOC)
?? CPP
字號:
// CurtainBoxDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CurtainBox.h"
#include "CurtainBoxDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCurtainBoxDlg dialog

CCurtainBoxDlg::CCurtainBoxDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCurtainBoxDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCurtainBoxDlg)
	m_Edit = _T("作者:風林");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCurtainBoxDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCurtainBoxDlg)
	DDX_Control(pDX, IDC_TITLE3, m_Title3);
	DDX_Control(pDX, IDC_TITLE2, m_Title2);
	DDX_Control(pDX, IDC_TITLE1, m_Title1);
	DDX_Text(pDX, IDC_CONTROL32, m_Edit);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCurtainBoxDlg, CDialog)
	//{{AFX_MSG_MAP(CCurtainBoxDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_TITLE1, OnTitle1)
	ON_BN_CLICKED(IDC_TITLE2, OnTitle2)
	ON_BN_CLICKED(IDC_TITLE3, OnTitle3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCurtainBoxDlg message handlers

BOOL CCurtainBoxDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	InitBox();		//初始化面板組
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCurtainBoxDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	if (IsIconic())
	{
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}

	CRect rect;
	GetClientRect(&rect);
	dc.FillSolidRect(&rect,RGB(192,248,202));	//繪制對話框背景色

	CBrush Brush;								//畫邊框
	Brush.CreateSolidBrush( RGB(97,120,140) );
	dc.SelectObject( &Brush );
	dc.RoundRect( m_BoxRext.left-9, m_BoxRext.top-9,
		m_BoxRext.right+9, m_BoxRext.bottom+9, 10, 10 );	//外框
	dc.FillSolidRect( m_BoxRext.left, m_BoxRext.top,
		m_BoxRext.Width(), m_BoxRext.Height(), GetSysColor( COLOR_BTNFACE ) );	//內框
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CCurtainBoxDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}
/////////////////////////////////////////////////////////////////////
//初始化面板組
void CCurtainBoxDlg::InitBox()
{
	m_BoxRext.SetRect( 44, 29, 232, 247);	//面板組位置

	m_Box1ID[0] = IDC_CONTROL11;	//面板1中控件ID號
	m_Box1ID[1] = IDC_CONTROL12;
	m_Box1ID[2] = IDC_CONTROL13;
	m_Box1ID[3] = IDC_CONTROL14;

	m_Box2ID[0] = IDC_CONTROL21;	//面板2中控件ID號

	m_Box3ID[0] = IDC_CONTROL31;	//面板3中控件ID號
	m_Box3ID[1] = IDC_CONTROL32;
	m_Box3ID[2] = IDC_CONTROL33;

	b_Mark1 = true;		//面板1初態-展開
	b_Mark2 = true;		//面板2初態-展開
	b_Mark3 = false;	//面板3初態-收縮
	m_Title3.SetButStatus(BUT_STATUS_RIGHT);
	ShowBox3( SW_HIDE );	//隱藏面板3中控件

	CRect rect;
	CWnd *pWnd = GetDlgItem( IDC_TITLE1 );
	pWnd->GetWindowRect( &rect );		//求標題條尺寸
	m_TitleHeight = rect.Height();		//標題條高度
	m_BoxHeight[0] = m_TitleHeight+60;			//面板1的高度(包括標題條)
	m_BoxHeight[1] = m_TitleHeight+88;			//面板2的高度(包括標題條)
	m_BoxHeight[2] = m_TitleHeight+40;			//面板3的高度(此值在增加面板時才有用)

	CalculateControlPos1();		//顯示面板組
	SetBox1Pos();
	CalculateControlPos2();
	SetBox2Pos();
	CalculateControlPos3();
	SetBox3Pos();
}

//刷新面板組
void CCurtainBoxDlg::InvalidateBox()
{
	CalculateControlPos1();
	SetBox1Pos();
	CalculateControlPos2();
	SetBox2Pos();
	CalculateControlPos3();
	SetBox3Pos();
	InvalidateRect( &m_BoxRext );
}

////////////////////////////////////////////////////////////////////////////
//面板1

//計算各控件位置
void CCurtainBoxDlg::CalculateControlPos1()
{
	m_TitlePt[0].x = m_BoxRext.left;	//標題條位置(左上角坐標)
	m_TitlePt[0].y = m_BoxRext.top;
	m_ControlPt1[0] = CPoint( m_TitlePt[0].x+5, m_TitlePt[0].y+m_TitleHeight+10 );//控件位置(相對于標題條)
	m_ControlPt1[1] = CPoint( m_TitlePt[0].x+31, m_TitlePt[0].y+m_TitleHeight+7 );
	m_ControlPt1[2] = CPoint( m_TitlePt[0].x+7, m_TitlePt[0].y+m_TitleHeight+38 );
	m_ControlPt1[3] = CPoint( m_TitlePt[0].x+75, m_TitlePt[0].y+m_TitleHeight+38 );
}

//設置各控件位置
void CCurtainBoxDlg::SetBox1Pos()
{
	CWnd *pWnd = GetDlgItem( IDC_TITLE1 );
	pWnd->SetWindowPos( NULL, m_TitlePt[0].x, m_TitlePt[0].y,
						0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整標題欄位置
	int i;
	for( i=0; i<BOX1_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box1ID[i] );
		pWnd->SetWindowPos( NULL, m_ControlPt1[i].x, m_ControlPt1[i].y,
					0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整控件位置
	}
}

//顯示/隱藏面板(SW_SHOW-顯示、SW_HIDE-隱藏)
void CCurtainBoxDlg::ShowBox1(int nShow)
{
	CWnd *pWnd;
	for( int i=0; i<BOX1_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box1ID[i] );
		pWnd->ShowWindow( nShow );
	}
}

////////////////////////////////////////////////////////////////////////////
//面板2

//計算各控件位置
void CCurtainBoxDlg::CalculateControlPos2()
{
	m_TitlePt[1].x = m_BoxRext.left;	//標題條位置(左上角坐標)
	if( b_Mark1 )	//面板1是展開的
		m_TitlePt[1].y = m_TitlePt[0].y+m_BoxHeight[0];
	else			//面板1是收起的
		m_TitlePt[1].y = m_TitlePt[0].y+m_TitleHeight;
	m_ControlPt2[0] = CPoint( m_TitlePt[1].x+5, m_TitlePt[1].y+m_TitleHeight+7 );	//控件位置
}

//設置各控件位置
void CCurtainBoxDlg::SetBox2Pos()
{
	CWnd *pWnd = GetDlgItem( IDC_TITLE2 );
	pWnd->SetWindowPos( NULL, m_TitlePt[1].x, m_TitlePt[1].y,
						0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整標題欄位置
	int i;
	for( i=0; i<BOX2_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box2ID[i] );
		pWnd->SetWindowPos( NULL, m_ControlPt2[i].x, m_ControlPt2[i].y,
					0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整控件位置
	}
}

//顯示/隱藏面板
void CCurtainBoxDlg::ShowBox2(int nShow)
{
	CWnd *pWnd;
	for( int i=0; i<BOX2_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box2ID[i] );
		pWnd->ShowWindow( nShow );
	}
}

////////////////////////////////////////////////////////////////////////////
//面板3

//計算各控件位置
void CCurtainBoxDlg::CalculateControlPos3()
{
	m_TitlePt[2].x = m_BoxRext.left;	//標題條位置(左上角坐標)
	if( b_Mark2 )	//面板2是展開的
		m_TitlePt[2].y = m_TitlePt[1].y+m_BoxHeight[1];
	else			//面板2是收起的
		m_TitlePt[2].y = m_TitlePt[1].y+m_TitleHeight;
	m_ControlPt3[0] = CPoint( m_TitlePt[2].x+5, m_TitlePt[2].y+m_TitleHeight+7 );	//控件位置
	m_ControlPt3[1] = CPoint( m_TitlePt[2].x+85, m_TitlePt[2].y+m_TitleHeight+7 );
	m_ControlPt3[2] = CPoint( m_TitlePt[2].x+5, m_TitlePt[2].y+m_TitleHeight+35 );
}

//設置各控件位置
void CCurtainBoxDlg::SetBox3Pos()
{
	CWnd *pWnd = GetDlgItem( IDC_TITLE3 );
	pWnd->SetWindowPos( NULL, m_TitlePt[2].x, m_TitlePt[2].y,
						0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整標題欄位置
	int i;
	for( i=0; i<BOX3_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box3ID[i] );
		pWnd->SetWindowPos( NULL, m_ControlPt3[i].x, m_ControlPt3[i].y,
					0, 0, SWP_NOSIZE | SWP_NOZORDER );		//調整控件位置
	}
}

//顯示/隱藏面板
void CCurtainBoxDlg::ShowBox3(int nShow)
{
	CWnd *pWnd;
	for( int i=0; i<BOX3_NUMBER; i++ )
	{
		pWnd = GetDlgItem( m_Box3ID[i] );
		pWnd->ShowWindow( nShow );
	}
}

//////////////////////////////////////////////////////////////////////////////////
//單擊標題響應函數

//單擊面板1標題(由ClassWizard添加)
void CCurtainBoxDlg::OnTitle1() 
{
	if( m_Title1.ClickBut() )	//單擊有效區
	{
		b_Mark1 = !b_Mark1;		//修改狀態
		if( b_Mark1 && b_Mark2 && b_Mark3 )		//保證最多同時展開兩個面板
		{
			b_Mark3 = false;
			m_Title3.SetButStatus(BUT_STATUS_RIGHT);
			ShowBox3( SW_HIDE);
		}
		if( b_Mark1 )		//展開/隱藏面板1
			ShowBox1( SW_SHOW );
		else
			ShowBox1( SW_HIDE );
		InvalidateBox();		//刷新面板組
	}
}

//單擊面板2標題(由ClassWizard添加)
void CCurtainBoxDlg::OnTitle2() 
{
	if( m_Title2.ClickBut() )
	{
		b_Mark2 = !b_Mark2;
		if( b_Mark1 && b_Mark2 && b_Mark3 )
		{
			b_Mark3 = false;
			m_Title3.SetButStatus(BUT_STATUS_RIGHT);
			ShowBox3( SW_HIDE);
		}
		if( b_Mark2 )
			ShowBox2( SW_SHOW );
		else
			ShowBox2( SW_HIDE );
		InvalidateBox();		//刷新面板組
	}
}

//單擊面板3標題(由ClassWizard添加)
void CCurtainBoxDlg::OnTitle3() 
{
	if( m_Title3.ClickBut() )
	{
		b_Mark3 = !b_Mark3;
		if( b_Mark1 && b_Mark2 && b_Mark3 )
		{
			b_Mark1 = false;
			m_Title1.SetButStatus(BUT_STATUS_RIGHT);
			ShowBox1( SW_HIDE);
		}
		if( b_Mark3 )
			ShowBox3( SW_SHOW );
		else
			ShowBox3( SW_HIDE );
		InvalidateBox();		//刷新面板組
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文字幕不卡| 99riav一区二区三区| www.在线成人| 91精品国产综合久久精品麻豆| 欧美激情一区在线观看| 日韩在线一区二区| 白白色亚洲国产精品| 精品国产制服丝袜高跟| 午夜欧美视频在线观看 | 国产精品美女久久久久久| 日本sm残虐另类| 欧美在线免费视屏| 亚洲同性同志一二三专区| 国产精品系列在线观看| 欧美va天堂va视频va在线| 日韩激情一二三区| 欧美无砖专区一中文字| 亚洲人成精品久久久久久| 国产成人av一区二区三区在线| 日韩一区二区三区精品视频| 国产精品麻豆99久久久久久| 亚洲一区二区在线免费看| gogo大胆日本视频一区| 久久免费的精品国产v∧| 免费高清在线一区| 91精品在线观看入口| 亚洲va韩国va欧美va精品| 99这里只有精品| 国产精品久久看| 成人av午夜电影| 亚洲欧美怡红院| 91在线你懂得| 亚洲男人天堂av| 91久久国产最好的精华液| 一个色综合av| 欧美视频你懂的| 天堂va蜜桃一区二区三区漫画版| 欧美日韩一区精品| 日韩综合小视频| 91精品啪在线观看国产60岁| 日本中文在线一区| 精品乱人伦小说| 国产精品一区二区久久不卡| 久久久天堂av| 91日韩精品一区| 精品少妇一区二区三区视频免付费 | 5858s免费视频成人| 免费成人性网站| 久久久不卡网国产精品二区 | 粉嫩av一区二区三区粉嫩| 国产午夜精品一区二区| 91在线免费视频观看| 亚洲成人在线网站| 欧美大片一区二区| 丁香天五香天堂综合| 亚洲激情在线激情| 91精品国产综合久久福利| 国产精品影视在线| 一区二区三区四区在线免费观看| 欧美影视一区在线| 寂寞少妇一区二区三区| 亚洲图片另类小说| 日韩免费视频一区二区| 国产激情视频一区二区三区欧美| 国产精品成人免费精品自在线观看| 欧美在线不卡一区| 久久疯狂做爰流白浆xx| 中文字幕不卡在线| 欧美精品精品一区| 风间由美一区二区三区在线观看 | 欧美色网站导航| 国产精品资源在线观看| 亚洲精品国产成人久久av盗摄| 欧美丰满少妇xxxxx高潮对白| 国内偷窥港台综合视频在线播放| 一区二区三区欧美| 久久九九99视频| 91麻豆精品国产91久久久资源速度| 福利一区在线观看| 麻豆精品一二三| 亚洲黄色尤物视频| 国产亚洲欧洲一区高清在线观看| 欧美性一区二区| 从欧美一区二区三区| 亚洲国产精品视频| 国产日韩三级在线| 欧美丝袜自拍制服另类| 国产999精品久久久久久绿帽| 日韩av高清在线观看| 综合久久久久综合| 久久精品一区二区| 欧美不卡视频一区| 在线播放/欧美激情| 91久久线看在观草草青青| 国产suv精品一区二区三区| 亚洲在线视频一区| 国产日韩欧美精品一区| 91久久一区二区| 高清在线成人网| 激情欧美一区二区三区在线观看| 亚洲福中文字幕伊人影院| 亚洲免费在线看| 日韩午夜电影av| 3d动漫精品啪啪一区二区竹菊| 色欧美片视频在线观看| 99久久国产综合精品色伊| 成人激情开心网| 成人黄色一级视频| 韩国v欧美v日本v亚洲v| 精品一区二区免费在线观看| 午夜日韩在线电影| 亚洲福利一区二区| 亚洲成人动漫av| 亚洲第一主播视频| 亚洲国产欧美在线| 亚洲成av人影院在线观看网| 一区二区三区在线免费| 亚洲精品水蜜桃| 亚洲一区二区av电影| 亚洲一区在线免费观看| 亚洲一区二区在线免费观看视频| 一区二区三区在线观看国产| 亚洲国产精品视频| 天堂蜜桃91精品| 亚洲一级片在线观看| 欧美国产欧美综合| 欧美激情一区二区在线| 亚洲欧美日韩国产综合在线| 国产精品久久777777| 亚洲欧洲精品一区二区三区| 国产精品三级久久久久三级| 中文字幕亚洲区| 一区二区三区在线视频观看58 | 欧美一级免费观看| 欧美顶级少妇做爰| 26uuu国产一区二区三区| 国产欧美日韩视频一区二区 | www.在线成人| 欧美私人免费视频| 欧美va天堂va视频va在线| 久久一夜天堂av一区二区三区| 日韩精品一区二区三区中文不卡| 久久免费国产精品 | 欧美—级在线免费片| 国产精品人妖ts系列视频| 亚洲精品欧美综合四区| 日韩—二三区免费观看av| 国产成人在线视频免费播放| 91国产成人在线| 日韩欧美国产精品| 国产精品久久久久影视| 亚洲网友自拍偷拍| 国产伦精品一区二区三区视频青涩| www.亚洲色图| 欧美大片拔萝卜| 亚洲欧美偷拍卡通变态| 美女在线视频一区| 成人激情午夜影院| 日韩三级中文字幕| 中文字幕中文在线不卡住| 免费观看一级特黄欧美大片| 成人中文字幕合集| 777a∨成人精品桃花网| 中文字幕一区二区三中文字幕| 午夜精品福利一区二区蜜股av | 一本久久综合亚洲鲁鲁五月天 | 亚洲欧美激情在线| 国内成+人亚洲+欧美+综合在线| 一本色道亚洲精品aⅴ| 久久无码av三级| 五月激情六月综合| 成人夜色视频网站在线观看| 日韩精品影音先锋| 亚洲午夜视频在线| 国产成人精品免费网站| 这里只有精品电影| 久久久久久亚洲综合影院红桃 | 国产精品一区专区| 欧美一区二区精品久久911| 国产精品国产自产拍高清av | 久久精品日韩一区二区三区| 午夜精品久久久久久久99水蜜桃| 91丨porny丨中文| 久久欧美中文字幕| 激情综合网天天干| 在线不卡免费av| 亚洲电影在线播放| 91免费视频观看| 综合久久一区二区三区| 高清国产午夜精品久久久久久| 久久人人爽人人爽| 九九国产精品视频| 欧美va亚洲va国产综合| 免费观看久久久4p| 欧美变态tickle挠乳网站| 日本不卡视频一二三区| 欧美精品成人一区二区三区四区| 午夜国产不卡在线观看视频| 欧美日韩中文一区| 亚洲国产日韩一级|