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

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

?? toolbar1.cpp

?? 一個(gè)超完整的醫(yī)藥管理方面的系統(tǒng)。進(jìn)入系統(tǒng):david 密碼:62120854 運(yùn)行前先運(yùn)行autoconfig.exe或手動(dòng)配置數(shù)據(jù)庫.rar
?? CPP
字號(hào):
// ToolBar1.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 "afxpriv.h"
#include "a1.h"
#include "Toolbar1.h"

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

/////////////////////////////////////////////////////////////////////////////
// CStandardBar

CStandardBar::CStandardBar() : m_pTBButtons(NULL)
{

}

CStandardBar::~CStandardBar()
{
//	if (m_pTBButtons)
		delete [] m_pTBButtons;
m_pTBButtons=NULL;

}


BEGIN_MESSAGE_MAP(CStandardBar, CToolBarCtrl)
	//{{AFX_MSG_MAP(CStandardBar)
	ON_NOTIFY_RANGE( TTN_NEEDTEXTA, IDSTR_XSDJ, IDSTR_OUT, OnNeedTextA)
	ON_NOTIFY_RANGE( TTN_NEEDTEXTW, IDSTR_XSDJ, IDSTR_OUT, OnNeedTextW)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


BOOL CStandardBar::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )
{
	BOOL bRet = CToolBarCtrl::Create(dwStyle, rect, pParentWnd, nID);

	m_nButtonCount = IDSTR_OUT - IDSTR_XSDJ + 1;
	SetBitmapSize( CSize(32,32) );

	VERIFY(AddBitmap(m_nButtonCount,IDR_STANDARDBAR) != -1);

	m_pTBButtons = new TBBUTTON[m_nButtonCount];

	for (int nIndex = 0; nIndex < m_nButtonCount; nIndex++)
	{
		CString string;
		string.LoadString(nIndex + IDSTR_XSDJ);

		// Add second '\0'
		int nStringLength = string.GetLength() + 1;
		TCHAR * pString = string.GetBufferSetLength(nStringLength);
		pString[nStringLength] = 0;
		pString[nStringLength-1] = 0;
		VERIFY((m_pTBButtons[nIndex].iString = AddStrings(pString)) != -1);

		string.ReleaseBuffer();

/*		m_pTBButtons[nIndex].iString =AddString(IDSTR_XSDJ);
*/		m_pTBButtons[nIndex].fsState =TBSTATE_ENABLED;
		m_pTBButtons[nIndex].fsStyle =TBSTYLE_FLAT;//TBSTYLE_CHECK ;TBSTYLE_BUTTON
		m_pTBButtons[nIndex].dwData = 0;
		m_pTBButtons[nIndex].iBitmap = nIndex;
		m_pTBButtons[nIndex].idCommand = nIndex + IDSTR_XSDJ;
	}
	m_pTBButtons[m_nButtonCount-1].idCommand=IDCANCEL;

	TBBUTTON sepButton;
	sepButton.idCommand = 0;
	sepButton.fsStyle = TBSTYLE_SEP;
	sepButton.fsState = TBSTATE_ENABLED;
	sepButton.iString = 0;
	sepButton.iBitmap = 0;
	sepButton.dwData = 0;
	
	for (nIndex = 0; nIndex < m_nButtonCount; nIndex++)
	{
		VERIFY(AddButtons(1,&m_pTBButtons[nIndex]));
		if (!((nIndex +1) % 3))
		{
			VERIFY(AddButtons(1,&sepButton));
		}
	}
	this->SetStyle(TBSTYLE_FLAT|CCS_TOP);
	return bRet;
}


/////////////////////////////////////////////////////////////////////////////
// CStandardBar message handlers

// MFC routes the notifications sent to the parent of the control to
// the control before the parent can process the notification.
// The control object can handle the notification or ignore it.
// If the notification is handled then return TRUE. Otherwise MFC
// will route it to the parent of the control.

BOOL CStandardBar::OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pLResult)
{
	if (message == WM_NOTIFY)
	{
		NMHDR *pNMHDR = (NMHDR *) lParam;
		switch (pNMHDR->code)
		{
		case TBN_BEGINADJUST :
			return BeginAdjust(wParam,  lParam,  pLResult);

		case TBN_BEGINDRAG:
			return BeginDrag(wParam,  lParam,  pLResult);

		case TBN_CUSTHELP:
			return CustomizeHelp(wParam,  lParam,  pLResult);

		case TBN_ENDADJUST:
			return EndAdjust(wParam,  lParam,  pLResult);

		case TBN_ENDDRAG:
			return EndDrag(wParam,  lParam,  pLResult);

		case TBN_GETBUTTONINFO:
			return GetButtonInfo(wParam,  lParam,  pLResult);

		case TBN_QUERYDELETE:
			return QueryDelete(wParam,  lParam,  pLResult);

		case TBN_QUERYINSERT:
			return QueryInsert(wParam,  lParam,  pLResult);

		case TBN_RESET:
			return Reset(wParam, lParam,  pLResult);

		case TBN_TOOLBARCHANGE:
			return ToolBarChange(wParam, lParam, pLResult);
		}
	}

	return CToolBarCtrl::OnChildNotify(message, wParam, lParam, pLResult);
}

BOOL CStandardBar::BeginAdjust(WPARAM wParam, LPARAM lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_BEGINADJUST\n"));

	// the customize dialog box is about to be displayed

	// save toolbar state before customization using the dialog
	// Use this information to restore the state if reset button is pressed
//	SaveState(HKEY_CURRENT_USER,_T("Software\\Microsoft\\VC40\\Samples\\CtrlDemo"),_T("Standard Tool Bar"));

	return TRUE;
}

BOOL CStandardBar::BeginDrag(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_BEGINDRAG\n"));

	// we are not implementing custon drag and drop
	* pLResult = FALSE;
	return TRUE;
}

BOOL CStandardBar::CustomizeHelp(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_CUSTHELP\n"));

	// Sample displays a message box but a valid help topic
	// can be displayed for the customize dialog for this toolbar
	AfxMessageBox(_T("Help not implemented!"));

	return TRUE;
}

BOOL CStandardBar::EndAdjust(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_ENDADJUST\n"));

	// the customize dialog box has been closed

	return TRUE;
}

BOOL CStandardBar::EndDrag(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_ENDDRAG\n"));

	// Code to handle custom drag and drop. This message indicates that
	// the item is being dropped
	* pLResult = FALSE;
	return TRUE;
}

BOOL CStandardBar::GetButtonInfo(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	// This notification message has to be handled correctly if
	// all operations in the custom dialogbox has to function correctly
	// We have to supply information for the button specified by pTBN->tbButton
	//
	// This notification is sent in the following cases
	//
	// After TBN_BEGINADJUST the control sends these notifications until
	// * pLResult is TRUE. We have to supply valid values when this value is
	// set to TRUE. Here the control is collecting information for all
	// the buttons that have to be displayed in the dialog box
	//
	// The control sends this notification to get information about
	// a button if the user is trying to add it to the toolbar or
	// rearranging the buttons on the toolbar from within the dialog

	TRACE(_T("TBN_GETBUTTONINFO\n"));

	TBNOTIFY *pTBN = (TBNOTIFY *) lParam;

	if (pTBN->iItem >= m_nButtonCount)
	{
		* pLResult = FALSE;
	}
	else
	{
		CString buffer;
		buffer.LoadString(pTBN->iItem + IDSTR_XSDJ);

		// set the string for the button
		// truncate the string if its length is greater than the buffer
		// supplied by the toolbar
		_tcsncpy(pTBN->pszText, buffer, pTBN->cchText - 1);
		pTBN->pszText[pTBN->cchText - 1] = '\0';

		// set the button info
		pTBN->tbButton = m_pTBButtons[pTBN->iItem];

		// valid values are structure
		*pLResult = TRUE;
	}

	return TRUE;
}

BOOL CStandardBar::QueryDelete(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_QUERYDELETE\n"));

	// in this sample any button can be deleted
	// if a particular button cannot be deleted set *pResult to FALSE for that item
	*pLResult = TRUE;
	return TRUE;
}

BOOL CStandardBar::QueryInsert(WPARAM wParam, LPARAM  lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_QUERYINSERT\n"));

	// in this sample buttons can be inserted at any location on the
	// toolbar
	*pLResult = TRUE;
	return TRUE;
}

BOOL CStandardBar::Reset(WPARAM wParam, LPARAM lParam, LRESULT* pLResult)
{
	TRACE(_T("TBN_RESET\n"));

	// User has pressed the reset button
	// restore the state of the toolbar to the state it was before customization
	RestoreState(HKEY_CURRENT_USER,_T("Software\\Microsoft\\VC40\\Samples\\CtrlDemo"),_T("Standard Tool Bar"));

	*pLResult = TRUE;
	return TRUE;
}

BOOL CStandardBar::ToolBarChange(WPARAM wParam, LPARAM lParam,LRESULT* pLResult)
{
	TRACE(_T("TBN_TOOLBARCHANGE\n"));

	// the toolbar has changed
	return TRUE;
}


// Helper function for tooltips

CString CStandardBar::NeedText( UINT nID, NMHDR * pNotifyStruct, LRESULT * lResult )
{
	LPTOOLTIPTEXT lpTTT = (LPTOOLTIPTEXT)pNotifyStruct ;
	ASSERT(nID == lpTTT->hdr.idFrom);

	CString toolTipText;
	toolTipText.LoadString(nID);

	// szText length is 80
	int nLength = (toolTipText.GetLength() > 79) ? 79 : toolTipText.GetLength();

	toolTipText = toolTipText.Left(nLength);

	return toolTipText;
}
void CStandardBar::OnNeedTextW( UINT nID, NMHDR * pNotifyStruct, LRESULT * lResult )
{
	CString toolTipText = NeedText(nID, pNotifyStruct, lResult);

	LPTOOLTIPTEXTW lpTTT = (LPTOOLTIPTEXTW)pNotifyStruct;

#ifndef _UNICODE
	mbstowcs(lpTTT->szText,(LPCSTR)toolTipText, toolTipText.GetLength() + 1);
#else
	_tcsncpy(lpTTT->szText, toolTipText, toolTipText.GetLength() + 1);
#endif
}

void CStandardBar::OnNeedTextA( UINT nID, NMHDR * pNotifyStruct, LRESULT * lResult )
{
	CString toolTipText = NeedText(nID, pNotifyStruct, lResult);

	LPTOOLTIPTEXT lpTTT = (LPTOOLTIPTEXT)pNotifyStruct;

	_tcscpy(lpTTT->szText,(LPCTSTR)toolTipText);
}
///////////////////////////////////////////////////////////////////////
// This has been overridden so we can handle the tooltip TTN_NEEDTEXT//
// notification message                                              //
///////////////////////////////////////////////////////////////////////
BOOL CStandardBar::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
	ASSERT(pResult != NULL);
	NMHDR* pNMHDR = (NMHDR*)lParam;
	HWND hWndCtrl = pNMHDR->hwndFrom;

	// get the child ID from the window itself
	// UINT nID = _AfxGetDlgCtrlID(hWndCtrl);

	//////////////////////////////////////////////////////////////////
	// If TTN_NEEDTEXT we cannot get the ID from the tooltip window //
	//////////////////////////////////////////////////////////////////

	int nCode = pNMHDR->code;

	//
	// if it is the following notification message
	// nID has to obtained from wParam
	//

	if (nCode == TTN_NEEDTEXTA || nCode == TTN_NEEDTEXTW)
	{
		UINT nID;   // = _AfxGetDlgCtrlID(hWndCtrl);
		nID = (UINT)wParam;


		ASSERT((UINT)pNMHDR->idFrom == (UINT)wParam);
		UNUSED(wParam);  // not used in release build
		ASSERT(hWndCtrl != NULL);
		ASSERT(::IsWindow(hWndCtrl));

		if (AfxGetThreadState()->m_hLockoutNotifyWindow == m_hWnd)
			return TRUE;        // locked out - ignore control notification

	// reflect notification to child window control
		if (ReflectLastMsg(hWndCtrl, pResult))
			return TRUE;        // eaten by child

		AFX_NOTIFY notify;
		notify.pResult = pResult;
		notify.pNMHDR = pNMHDR;
		return OnCmdMsg(nID, MAKELONG(nCode, WM_NOTIFY), &notify, NULL);
	}

	return CToolBarCtrl::OnNotify(wParam, lParam, pResult);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产系列| 国产精品国产a级| 欧美人伦禁忌dvd放荡欲情| av日韩在线网站| 国产精品亚洲综合一区在线观看| 精品在线播放免费| 蜜臀久久99精品久久久久久9 | 一区二区不卡在线视频 午夜欧美不卡在 | 91视视频在线观看入口直接观看www| 国产乱码精品一区二区三| 国内欧美视频一区二区| 国产一区二区三区四区五区美女 | 6080亚洲精品一区二区| 3d成人h动漫网站入口| 欧美一区二区三区在线观看 | 色综合天天综合| 在线中文字幕一区二区| 欧美日韩一级二级| 正在播放一区二区| 精品国产免费人成在线观看| 久久久精品蜜桃| 国产精品乱码久久久久久| 日韩美女视频一区二区| 亚洲一区二区三区四区在线观看| 亚洲成人精品影院| 日本视频一区二区三区| 国产精品一区二区久激情瑜伽| 成人黄色软件下载| 在线观看一区日韩| 欧美一区二区三区婷婷月色| 久久亚洲综合色一区二区三区| 国产欧美视频一区二区| 亚洲欧美一区二区三区久本道91 | 国产精品白丝在线| 亚洲综合小说图片| 久久精品国产99久久6| 国产成人精品免费视频网站| 91麻豆精品秘密| 91精品国产一区二区人妖| 久久久五月婷婷| 亚洲精品大片www| 久久se精品一区精品二区| 成人免费三级在线| 欧美性大战久久久| 久久影院电视剧免费观看| 国产精品区一区二区三| 亚洲综合视频网| 国产一区二区三区综合| 久久中文字幕电影| 一区二区三区成人| 韩国女主播成人在线| 色吧成人激情小说| 久久午夜国产精品| 午夜国产精品影院在线观看| 国产一区 二区| 欧美综合天天夜夜久久| 久久青草国产手机看片福利盒子| 亚洲免费观看高清完整版在线| 免费成人在线视频观看| 色综合久久99| 久久久精品天堂| 午夜欧美电影在线观看| 国产成人自拍在线| 欧美一级在线免费| 日韩伦理av电影| 狠狠色狠狠色合久久伊人| 欧美综合色免费| 欧美激情一区二区三区四区| 日韩精品欧美成人高清一区二区| 播五月开心婷婷综合| 日韩一区二区三区免费观看| 夜夜嗨av一区二区三区中文字幕| 国产呦萝稀缺另类资源| 欧美久久久久久久久| 亚洲素人一区二区| 国产91精品一区二区| 日韩一级二级三级精品视频| 洋洋av久久久久久久一区| 国产高清视频一区| 欧美大片一区二区三区| 午夜精品福利一区二区蜜股av| www.亚洲色图.com| 久久综合99re88久久爱| 六月婷婷色综合| 欧美丰满美乳xxx高潮www| 亚洲女爱视频在线| eeuss鲁片一区二区三区在线看| 欧美精品一区二区三区蜜臀 | 欧美日本一区二区在线观看| 国产精品久久久久7777按摩 | 91麻豆精品国产| 一区二区三区国产| 一本一道综合狠狠老| 国产精品高潮久久久久无| 国产精品1024久久| 久久中文字幕电影| 国产麻豆日韩欧美久久| 欧美成人性福生活免费看| 日本强好片久久久久久aaa| 欧美日韩国产天堂| 午夜成人免费视频| 欧美日韩一区在线观看| 伊人色综合久久天天| 91女厕偷拍女厕偷拍高清| 国产精品久久久久久久久免费樱桃 | 中文字幕一区二区三区四区| jlzzjlzz欧美大全| 中文乱码免费一区二区| 成人蜜臀av电影| 国产精品毛片大码女人| jlzzjlzz欧美大全| 亚洲免费观看高清完整版在线 | 国产一区二区三区久久悠悠色av| 日韩色视频在线观看| 秋霞av亚洲一区二区三| 欧美一区二区三区在线看| 蜜臀av性久久久久蜜臀aⅴ流畅| 7777精品伊人久久久大香线蕉的 | 日韩国产欧美三级| 日韩午夜三级在线| 精品在线观看免费| 国产欧美一区二区精品仙草咪| 国产精品99久久久久久久vr| 国产亚洲精品精华液| 成人一区二区视频| 亚洲欧美福利一区二区| 欧美日韩精品欧美日韩精品一| 亚洲高清视频在线| 91精品国产综合久久国产大片| 美女mm1313爽爽久久久蜜臀| 久久综合久久鬼色中文字| 丁香婷婷深情五月亚洲| 亚洲精品伦理在线| 在线播放欧美女士性生活| 久久成人麻豆午夜电影| 欧美国产精品一区二区三区| 91美女精品福利| 五月婷婷综合激情| 久久久久久久综合| 一本到一区二区三区| 日韩在线一区二区| 国产日韩一级二级三级| 在线观看日韩国产| 看电视剧不卡顿的网站| 欧美国产在线观看| 欧美老女人第四色| 国产精品一区二区男女羞羞无遮挡| 中文字幕制服丝袜成人av| 欧美日韩精品一区二区三区蜜桃 | 久久先锋影音av| 91免费视频网址| 日本欧美一区二区在线观看| 国产欧美精品区一区二区三区| 欧美视频在线观看一区| 国产一区二区三区av电影| 亚洲蜜臀av乱码久久精品| 日韩视频一区二区在线观看| 成人黄色777网| 视频一区在线播放| 中文一区二区完整视频在线观看| 在线观看日韩高清av| 国产精品1区2区| 亚洲成av人影院| 国产女人水真多18毛片18精品视频| 欧美日韩中文字幕一区| 懂色av一区二区三区蜜臀| 视频一区欧美日韩| 中文字幕在线免费不卡| 日韩精品最新网址| 欧美在线观看视频一区二区三区| 韩国成人福利片在线播放| 亚洲国产欧美日韩另类综合| 国产欧美精品区一区二区三区| 91精品国产综合久久久久久漫画 | 欧美成人一区二区三区在线观看| 99精品一区二区三区| 国模娜娜一区二区三区| 偷窥国产亚洲免费视频| 国产精品成人一区二区三区夜夜夜| 欧美一区二区三区在| 欧美在线观看视频在线| 99这里都是精品| 国产成人免费在线观看| 久久国产精品99精品国产| 亚洲高清在线精品| 亚洲免费观看在线观看| 国产精品免费av| 久久精品在线观看| 欧美videossexotv100| 欧美三级日韩在线| 91福利精品第一导航| eeuss鲁片一区二区三区 | 国产999精品久久久久久| 麻豆视频一区二区| 午夜亚洲国产au精品一区二区| 亚洲欧美怡红院| 日韩美女啊v在线免费观看| 中文字幕+乱码+中文字幕一区| 久久影视一区二区| 久久久久久久久久久久久女国产乱|