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

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

?? buttondi.cpp

?? VC實現word 和ACCESS數據庫的連接
?? CPP
字號:
// buttondi.cpp : implementation file
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#include "stdafx.h"
#include "resource.h"
#include "buttondi.h"
#include "strings.h"
#include "wordpad.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

#ifndef DS_CONTEXTHELP
#define DS_CONTEXTHELP 0x2000L
#endif

static const int nFontSize = 10;

/////////////////////////////////////////////////////////////////////////////
// CButtonDialog dialog

int CButtonDialog::DisplayMessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption,
	LPCTSTR lpszButtons, WORD wStyle, int nDef, int nCancel,
	DWORD* pHelpIDs, CWnd* pParentWnd)
{
	CButtonDialog dlg(lpszText, lpszCaption, lpszButtons, wStyle, pHelpIDs,
		pParentWnd);
	dlg.SetDefault(nDef);
	dlg.SetCancel(nCancel);
	return dlg.DoModal();
}

CButtonDialog::CButtonDialog(LPCTSTR lpszText, LPCTSTR lpszCaption,
	LPCTSTR lpszButtons, WORD wStyle, DWORD* pHelpIDs ,
	CWnd* pParentWnd) : CCSDialog()
{

	ASSERT(lpszText != NULL);
	ASSERT(lpszCaption != NULL);
	if (HIWORD(lpszText) == NULL)
		VERIFY(m_strText.LoadString(LOWORD((DWORD)lpszText)));
	else
		m_strText = lpszText;
	if (HIWORD(lpszCaption) == NULL)
		VERIFY(m_strCaption.LoadString(LOWORD((DWORD)lpszCaption)));
	else
		m_strCaption = lpszCaption;
	if (lpszButtons != NULL)
		AddButtons(lpszButtons);

	m_pParentWnd = pParentWnd;
	m_nDefButton = 0;
	m_nCancel = -1;
	m_pButtons = NULL;
	m_wStyle = wStyle;
	m_nBaseID = nFontSize; // don't use IDOK, IDCANCEL, etc
	m_hDlgTmp = NULL;

	LOGFONT lf;
	memcpy(&lf, &theApp.m_lf, sizeof(LOGFONT));
	lf.lfHeight = -nFontSize;
	lf.lfWidth = 0;
	lf.lfWeight = FW_NORMAL;
	VERIFY(m_font.CreateFontIndirect(&lf));

//  m_font.CreateFont(-nFontSize, 0, 0, 0, FW_NORMAL, FALSE, FALSE,
//      FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
//      DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE, szFontName);
	m_pHelpIDs = pHelpIDs;
}

CButtonDialog::~CButtonDialog()
{
	delete [] m_pButtons;
	if (m_hDlgTmp != NULL)
		GlobalFree(m_hDlgTmp);
}

BEGIN_MESSAGE_MAP(CButtonDialog, CCSDialog)
	//{{AFX_MSG_MAP(CButtonDialog)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CButtonDialog message handlers

int CButtonDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (m_pHelpIDs != NULL)
	{
		for (int i=0;i<m_strArray.GetSize();i++)
			m_pHelpIDs[i*2] = i+m_nBaseID;
	}
	if (CCSDialog::OnCreate(lpCreateStruct) == -1)
		return -1;

	SetWindowText(m_strCaption);
	m_pButtons = new CButton[m_strArray.GetSize()];

	CRect rect(0, 0, 10, 10);
	if (!m_staticIcon.Create(NULL,
		SS_ICON | WS_GROUP | WS_CHILD | WS_VISIBLE, rect, this))
	{
		return -1;
	}
	m_staticIcon.SetIcon(::LoadIcon(NULL, GetIconID(m_wStyle)));

	if (!m_staticText.Create(m_strText, SS_LEFT | SS_NOPREFIX | WS_GROUP |
		WS_CHILD | WS_VISIBLE, rect, this))
	{
		return -1;
	}
	m_staticText.SetFont(&m_font);

	for (int i=0;i<m_strArray.GetSize();i++)
	{
		if (!m_pButtons[i].Create(m_strArray[i], WS_TABSTOP | WS_CHILD |
			WS_VISIBLE | ((i == 0) ? WS_GROUP : 0) |
			((i == m_nDefButton) ? BS_DEFPUSHBUTTON : BS_PUSHBUTTON),
			rect, this, i+m_nBaseID))
		{
			return -1;
		}
		m_pButtons[i].SetFont(&m_font);
	}
	PositionControls();
	return 0;
}

BOOL CButtonDialog::OnInitDialog()
{
	CCSDialog::OnInitDialog();
	if (m_pHelpIDs == NULL) // no context help
		ModifyStyleEx(WS_EX_CONTEXTHELP, 0); //remove

	m_pButtons[m_nDefButton].SetFocus();
	return FALSE;  // return TRUE  unless you set the focus to a control
}

/////////////////////////////////////////////////////////////////////////////
// CButtonDialog operations

void CButtonDialog::AddButtons(LPCTSTR lpszButton)
{
	CString str, strButtons;
	int i=0;
	if (HIWORD(lpszButton) == NULL)
		strButtons.LoadString(LOWORD((DWORD)lpszButton));
	else
		strButtons = lpszButton;
	while (AfxExtractSubString(str, strButtons, i++, '\n'))
		AddButton(str);
}

#ifndef DS_3DLOOK
#define DS_3DLOOK 0x4
#endif

void CButtonDialog::FillInHeader(LPDLGTEMPLATE lpDlgTmp)
{
	USES_CONVERSION;
	lpDlgTmp->style = DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE |
		WS_CAPTION | WS_SYSMENU;
	if (theApp.m_bWin4)
		lpDlgTmp->style |= DS_CONTEXTHELP;
	lpDlgTmp->dwExtendedStyle = 0;
	lpDlgTmp->cdit = 0;
	lpDlgTmp->x = 0;
	lpDlgTmp->y = 0;
	lpDlgTmp->cx = 100;
	lpDlgTmp->cy = 100;

	LPWSTR lpStr = (LPWSTR)(lpDlgTmp + 1); /* Move ptr to the variable fields */

	*lpStr++ = 0;  /* No Menu resource for Message Box */
	*lpStr++ = 0;  /* No Class name for MessageBox */

	int nLen = m_strCaption.GetLength();
	wcscpy(lpStr, T2CW(m_strCaption));

	lpStr += nLen+1;
	WORD* pWord = (WORD*)lpStr;
	*pWord = 10; // 10 pt font
	pWord++;
	lpStr = (LPWSTR) pWord;

	wcscpy(lpStr, T2W(theApp.m_lf.lfFaceName));
}

/////////////////////////////////////////////////////////////////////////////
// CButtonDialog overridables

BOOL CButtonDialog::OnCommand(WPARAM wParam, LPARAM /*lParam*/)
{
	if (wParam == IDCANCEL && m_nCancel != -1)
	{
		EndDialog(m_nCancel);
		return TRUE;
	}
	if (::GetDlgItem(m_hWnd, wParam)==NULL)
		return FALSE;
	EndDialog(wParam-m_nBaseID);
	return TRUE;
}

int CButtonDialog::DoModal()
{
	ASSERT(m_strArray.GetSize() != 0);
	if (m_strArray.GetSize() == 0)
		return (m_nCancel != -1) ? m_nCancel : 0;

	// compute size of header
	// Fixed portions of DLG template header = sizeof(DLGTEMPLATE);
	// One null byte for menu name and one for class name = 2
	// Caption text plus NULL = m_strCaption.GetLength()+1
	int nSize = sizeof(DLGTEMPLATE);
	nSize += (2 + m_strCaption.GetLength()+1+lstrlen(theApp.m_lf.lfFaceName)+1)*2 +sizeof(WORD);
	m_hDlgTmp = GlobalAlloc(GPTR, nSize);
	if (m_hDlgTmp == NULL)
		return IDCANCEL;
	LPDLGTEMPLATE lpDlgTmp = (LPDLGTEMPLATE)GlobalLock(m_hDlgTmp);
	FillInHeader(lpDlgTmp);
	GlobalUnlock(m_hDlgTmp);
	InitModalIndirect(m_hDlgTmp);

	return CCSDialog::DoModal();
}

/////////////////////////////////////////////////////////////////////////////
// CButtonDialog implementation

void CButtonDialog::PositionControls()
{
	CSize sizeBase = GetBaseUnits();
	int nButtonHeight = (sizeBase.cy*14)/8;
	int nHeight = 0;
	int nSep,nLeftMargin,nRightMargin,nTopMargin,nBottomMargin;
	int nButtonAdj;
	int nWidth = 0;
	CRect rectText;

	// a) 5/8 screen Width
	// b) Caption
	// c) nLeftMargin ICON nSep TEXT nRightMargin
	// d) nLeftMargin Button1 nSep Button2 ... nRightMargin
	// client width is max(b,d, min(c,a))

	CSize sizeIcon(GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON));
	nSep = sizeIcon.cx/2;
	nLeftMargin = nSep;
	nRightMargin = nSep;
	nTopMargin = nSep;
	nBottomMargin = nSep;

	CClientDC dc(this);
	CFont* pOldFont = dc.SelectObject(&m_font);

	nButtonAdj = dc.GetTextExtent(_T("XXX"),3).cx; // padding on buttons

	int nScreenWidth58 = dc.GetDeviceCaps(HORZRES)*5/8;
	int nCaptionWidth = dc.GetTextExtent(m_strCaption, m_strCaption.
		GetLength()).cx;
	CSize sizeText = dc.GetTextExtent(m_strText,m_strText.GetLength());
	int nTextIconWidth = nLeftMargin+sizeIcon.cx+nSep+sizeText.cx+nRightMargin;
	int nButtons = m_strArray.GetSize();
	int nButtonsWidth = nLeftMargin+nRightMargin+(nButtons-1)*nSep;
	for (int i=0;i<nButtons;i++)
	{
		nButtonsWidth +=
			dc.GetTextExtent(m_strArray[i],m_strArray[i].GetLength()).cx+
			nButtonAdj*2;
	}

	nWidth = min(nTextIconWidth,nScreenWidth58);
	nWidth = max(nWidth, nCaptionWidth);
	nWidth = max(nWidth, nButtonsWidth);

	m_staticIcon.SetWindowPos(NULL, nLeftMargin, nTopMargin, sizeIcon.cx,
		sizeIcon.cy, SWP_NOZORDER);

	if (sizeText.cx > nWidth-nLeftMargin-nRightMargin-sizeIcon.cx-nSep)
	{
		sizeText.cx = nWidth-nLeftMargin-nRightMargin-sizeIcon.cx-nSep;
//      int nTextWidth = nWidth-nLeftMargin-nRightMargin-sizeIcon.cx-nSep;
//      rectText.SetRect(0, 0, nTextWidth, 32767);
		rectText.SetRect(0, 0, sizeText.cx, 32767);
		/* Ask DrawText for the right cy */
		sizeText.cy = dc.DrawText(m_strText, m_strText.GetLength(), &rectText,
			DT_CALCRECT | DT_WORDBREAK | DT_EXPANDTABS | DT_NOPREFIX);
	}

	m_staticText.SetWindowPos(NULL, nSep+sizeIcon.cx+nSep, nTopMargin,
		sizeText.cx, sizeText.cy, SWP_NOZORDER);

	sizeText.cy = max(sizeText.cy, sizeIcon.cy); // at least icon height
	nHeight = nTopMargin + sizeText.cy + nSep + nButtonHeight + nBottomMargin;

	CRect rect;
	rect.left = (nWidth - (nButtonsWidth - nLeftMargin - nRightMargin))/2;
	rect.top = nTopMargin + sizeText.cy + nSep;
	rect.bottom = rect.top + nButtonHeight;

	for (i=0;i<m_strArray.GetSize();i++)
	{
		rect.right = rect.left + dc.GetTextExtent(m_strArray[i],m_strArray[i].GetLength()).cx +
			2*nButtonAdj;
		m_pButtons[i].MoveWindow(&rect);
		rect.left = rect.right + nSep;
	}

	rect.SetRect(0,0,nWidth,nHeight);
	CalcWindowRect(&rect);
	SetWindowPos(NULL, (dc.GetDeviceCaps(HORZRES)-rect.Width())/2,
		(dc.GetDeviceCaps(VERTRES)-rect.Height())/2, rect.Width(), rect.Height(),
		SWP_NOZORDER|SWP_NOACTIVATE);
	if(m_nCancel == -1) // no cancel button
	{
//      CMenu* pMenu = GetSystemMenu(FALSE);
//      if (pMenu != NULL)
//          pMenu->DeleteMenu(SC_CLOSE, MF_BYCOMMAND);
	}
	dc.SelectObject(pOldFont);
}

CSize CButtonDialog::GetBaseUnits()
{
	CDisplayIC dc;
	CFont* pFont = dc.SelectObject(&m_font);
	TEXTMETRIC tm;
	VERIFY(dc.GetTextMetrics(&tm));
	dc.SelectObject(pFont);
	return CSize(tm.tmAveCharWidth, tm.tmHeight);
}

LPCTSTR CButtonDialog::GetIconID(WORD wFlags)
{
	LPCTSTR lpszIcon = NULL;
	wFlags &= MB_ICONMASK;
	if (wFlags == MB_ICONHAND)
		lpszIcon = IDI_HAND;
	else if (wFlags == MB_ICONQUESTION)
		lpszIcon = IDI_QUESTION;
	else if (wFlags == MB_ICONEXCLAMATION)
		lpszIcon = IDI_EXCLAMATION;
	else if (wFlags == MB_ICONASTERISK)
		lpszIcon = IDI_ASTERISK;
	return lpszIcon;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精华液网站w| 91精品国产乱码久久蜜臀| 男男视频亚洲欧美| 午夜精品一区在线观看| 亚洲h动漫在线| 亚洲成av人片在www色猫咪| 亚洲一区二区欧美激情| 亚洲亚洲精品在线观看| 亚洲二区在线观看| 亚洲成人黄色小说| 热久久国产精品| 精品在线观看视频| 成人白浆超碰人人人人| 91美女福利视频| 欧美日韩你懂得| 欧美一级电影网站| 国产欧美一区视频| 亚洲色图丝袜美腿| 免费一级片91| 久久av资源站| 成人免费视频免费观看| av不卡在线播放| 欧美少妇xxx| 欧美一级生活片| 国产精品视频线看| 亚洲综合在线观看视频| 日韩**一区毛片| 国产精品一区二区三区网站| 成人精品鲁一区一区二区| 欧洲视频一区二区| 日韩欧美一级特黄在线播放| 欧美韩国日本综合| 亚洲国产日韩a在线播放| 久久精品国产久精国产| 不卡视频在线观看| 91麻豆精品国产91久久久久久| 2023国产一二三区日本精品2022| 国产精品女人毛片| 丝瓜av网站精品一区二区| 国产精品一品二品| 91.com视频| 亚洲欧美一区二区视频| 人人狠狠综合久久亚洲| 91视视频在线直接观看在线看网页在线看| 欧洲精品在线观看| 国产调教视频一区| 青青草国产成人av片免费| av资源站一区| 日韩精品一区二区三区中文精品| 中文字幕日韩精品一区| 国内精品视频666| 欧美天天综合网| 亚洲丝袜制服诱惑| 国产乱子伦视频一区二区三区 | 26uuu欧美| 午夜影院久久久| 成av人片一区二区| 精品人在线二区三区| 亚洲一区二区三区自拍| 北岛玲一区二区三区四区 | 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲精品一区二区三区蜜桃下载 | 国产精品自在欧美一区| 欧美日韩高清影院| 一区二区三区欧美| 99久久久久久99| 中文字幕av一区二区三区免费看 | 国产一区二区三区国产| 欧美videos中文字幕| 午夜伊人狠狠久久| 欧美三级视频在线| 亚洲伊人色欲综合网| 91黄色免费版| 亚洲高清不卡在线观看| 在线观看不卡一区| 一区二区三区蜜桃| 日本韩国视频一区二区| 亚洲人成网站影音先锋播放| 99久久夜色精品国产网站| 中文字幕在线播放不卡一区| www.在线欧美| 亚洲精品欧美在线| 欧美老年两性高潮| 奇米亚洲午夜久久精品| 5858s免费视频成人| 天堂午夜影视日韩欧美一区二区| 欧美日韩亚州综合| 另类成人小视频在线| 欧美电视剧在线观看完整版| 久久av资源网| 中文一区一区三区高中清不卡| 成人免费毛片app| 中文字幕亚洲在| 欧美主播一区二区三区| 午夜视黄欧洲亚洲| 精品美女一区二区三区| 国产成人综合在线| 成人免费一区二区三区在线观看| 91小视频在线| 日产欧产美韩系列久久99| 日韩欧美国产一区二区在线播放 | 91精品欧美一区二区三区综合在| 日韩av网站在线观看| 久久夜色精品一区| 色哟哟国产精品| 蜜桃视频免费观看一区| 中文字幕欧美日本乱码一线二线| 色综合天天综合网天天看片| 丝瓜av网站精品一区二区| 久久综合精品国产一区二区三区 | 欧美网站大全在线观看| 久久精品99久久久| 成人欧美一区二区三区小说| 欧美精品第一页| 不卡一区二区三区四区| 图片区小说区国产精品视频| 国产女人aaa级久久久级| 欧美日韩一二三| 岛国精品一区二区| 日韩国产在线一| 国产精品初高中害羞小美女文| 欧美精品在线观看一区二区| 国v精品久久久网| 日韩电影免费在线看| 国产精品二三区| 精品久久久久av影院| 欧美日韩国产免费一区二区 | 麻豆久久一区二区| 一区二区三区四区乱视频| 精品国产乱码久久久久久老虎| 欧洲激情一区二区| 不卡在线观看av| 国产麻豆视频一区| 麻豆91精品91久久久的内涵| 一区二区三区视频在线看| 国产欧美精品一区二区色综合| 日韩美女一区二区三区四区| 欧美图区在线视频| 色老综合老女人久久久| 不卡一二三区首页| 粉嫩av一区二区三区粉嫩| 狠狠色丁香久久婷婷综合丁香| 午夜视频在线观看一区二区| 一个色妞综合视频在线观看| 中文字幕一区在线观看视频| 久久免费看少妇高潮| 26uuu亚洲综合色欧美| 精品国产免费一区二区三区四区 | 欧美日韩的一区二区| 欧洲亚洲国产日韩| 91福利区一区二区三区| 91麻豆精品在线观看| 91一区一区三区| 不卡免费追剧大全电视剧网站| 国产一区二区精品久久| 精品一区在线看| 韩日av一区二区| 国产真实乱子伦精品视频| 国精产品一区一区三区mba视频| 日韩高清一区二区| 美女视频网站久久| 精品一区二区在线免费观看| 美女精品一区二区| 国产在线麻豆精品观看| 国产在线麻豆精品观看| 国产a级毛片一区| 91色porny蝌蚪| 欧美日韩成人一区二区| 日韩精品一区在线| 26uuu欧美| 综合激情网...| 一区二区在线免费| 青青草成人在线观看| 国产一区二区三区四区五区美女 | 一区2区3区在线看| 日韩一区欧美二区| 国产自产2019最新不卡| 成人精品免费网站| 欧美三区在线视频| 日韩视频一区在线观看| 欧美激情艳妇裸体舞| 一区二区三区在线免费播放| 日韩国产精品91| 国产成人综合视频| 91美女片黄在线观看91美女| 91精品黄色片免费大全| 国产喂奶挤奶一区二区三区| 一区二区成人在线观看| 捆绑调教一区二区三区| 成人做爰69片免费看网站| 欧美视频精品在线观看| 国产无一区二区| 天天色综合成人网| 国产不卡在线播放| 欧美精品乱码久久久久久| 国产亚洲欧美一区在线观看| 一区二区三区蜜桃| 国产91精品一区二区麻豆亚洲| 欧美视频一区在线观看| 国产色一区二区|