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

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

?? pcdmcommander.cpp

?? 《Windows CE 權威指南》(作者:(美)CHRIS MUENCH
?? CPP
字號:
// PCDMCommander.cpp : Implementation of CPCDMCommander

#include "stdafx.h"
#include "PCDMUI.h"
#include "PCDMCommander.h"

/////////////////////////////////////////////////////////////////////////////
// CPCDMCommander


// <BOOK_ADDON Step2: Chapter 7.1.2> ***************************************
STDMETHODIMP CPCDMCommander::CreateBar(int ID,int Styles)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

#ifdef UNDER_CE
	if (m_CmdBarType==CMDBAR) // <BOOK_ADDON Step3: Chapter 7.2.2/> *******
	{
		if (m_IDBAR==0)
		{
			m_hwndCB = CommandBar_Create(_Module.m_hInst, m_hWnd, ID);
			CommandBar_AddBitmap(m_hwndCB, _Module.m_hInst, 
								IDR_TOOLBAR, 17, 16, 16);
			m_IDBAR=ID;
			m_bIsFresh=FALSE;
		}
// <BOOK_ADDON Step3: Chapter 7.2.2> ***************************************
	}
	else
	{
		if (m_BandCreated==FALSE)
		{
			HBITMAP hBmp;
			int i;

			// Create an Image List for the icons of 
// the Bars when they get minimized
			m_hImLst=ImageList_Create(16,16,ILC_COLOR,17,0);
			hBmp=LoadBitmap(_Module.m_hInst,MAKEINTRESOURCE(IDR_TOOLBAR));
			ImageList_Add(m_hImLst,hBmp,NULL);
			DeleteObject(hBmp);
			m_hwndCBand=CommandBands_Create(_Module.m_hInst,
											m_hWnd,4711,RBS_SMARTLABELS|RBS_VARHEIGHT|RBS_AUTOSIZE,
											m_hImLst);
			if (m_hwndCBand==NULL)
				return S_FALSE;
			m_BandCreated=TRUE;

			// Initialize the REBARBANDINFO structure
			memset(m_trbi,0,sizeof(REBARINFO)*MAXBANDS);
		    for (i = 0; i < MAXBANDS; i++) 
		    {
		        m_trbi[i].cbSize = sizeof (REBARBANDINFO);
		        m_trbi[i].fMask = RBBIM_SIZE;
			    m_trbi[i].cx = 100;	
		    }
		}
		else
		{
			m_CurrentBar++;
		}

		// Set the attributes of the new Bar
		m_trbi[m_CurrentBar].fMask |= RBBIM_ID | RBBIM_STYLE | RBBIM_ID;
		m_trbi[m_CurrentBar].wID = ID;
		if (Styles==0)    // Set NoGripper and Fixed BMP as default values
			Styles=RBBS_NOGRIPPER + RBBS_FIXEDBMP;
		m_trbi[m_CurrentBar].fStyle = Styles; 
		CommandBands_AddBands (m_hwndCBand, _Module.m_hInst, 1,
                                   &m_trbi[m_CurrentBar]);
		UINT idx=SendMessage(m_hwndCBand,RB_IDTOINDEX,(WPARAM)(UINT)ID,0);
		m_hwndCB = CommandBands_GetCommandBar (m_hwndCBand, idx);
 		CommandBar_AddBitmap(m_hwndCB, _Module.m_hInst,IDR_TOOLBAR, 17, 16, 16);
	}
// </BOOK_ADDON Step3: Chapter 7.2.2> ***************************************

#else	// Code for Desktop here
#endif

	return S_OK;
}

STDMETHODIMP CPCDMCommander::InsertMenu(BSTR MenuName, int Index)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	if (Index<MAXMENUS && m_MyPopup[Index]==NULL)
	{
		if (m_MyMenu==NULL)
		{
			m_MyMenu=CreateMenu();
#ifdef UNDER_CE
			if (m_hwndCB!=NULL)
			{
				CommandBar_InsertMenubarEx(m_hwndCB, NULL,
                                         (LPTSTR)m_MyMenu, Index);
				SortToolTips(Index);
			}	
#else	// Code for Desktop here
			::SetMenu(m_hWnd,m_MyMenu);
#endif
		}
		m_MyPopup[Index]=CreatePopupMenu();
		AppendMenu(m_MyMenu,MF_STRING|MF_POPUP,
                      (UINT)m_MyPopup[Index],MenuName);
	}

	return S_OK;
}

void CPCDMCommander::SortToolTips(int index)
{
int i;
		for (i=MAXBUTTONS-1;i>index;i--)
			m_szTTips[m_CurrentBar][i]=m_szTTips[m_CurrentBar][i-1];
		if (m_iMaxButtons[m_CurrentBar]<MAXBUTTONS) m_iMaxButtons[m_CurrentBar]++;
#ifdef UNDER_CE
		if (m_hwndCB!=NULL)
			CommandBar_AddToolTips(m_hwndCB,
                             MAXBUTTONS,m_szTTips[m_CurrentBar]);
#else	// Code for Desktop here
#endif
}


STDMETHODIMP CPCDMCommander::InsertMenuItem(BSTR ItemName, int MenuNo, int Index, int ID)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	if (MenuNo<MAXMENUS)
	{
		if (ID==0)
			::InsertMenu(m_MyPopup[MenuNo],Index,
                               MF_BYPOSITION|MF_SEPARATOR,NULL,NULL);
		else
			::InsertMenu(m_MyPopup[MenuNo],Index,
                       MF_BYPOSITION|MF_STRING|MF_ENABLED,ID,ItemName);
	}

	return S_OK;
}

STDMETHODIMP CPCDMCommander::InsertButton(int StockNo, int state, int Index, int ID, BSTR ToolTipText)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	TBBUTTON lpButtons;
	lpButtons.idCommand=ID;
	lpButtons.fsState=state;
	if (ID==0)	// If ID is 0 a Separation Space is created
	{
		lpButtons.iBitmap=0;
		lpButtons.fsStyle=TBSTYLE_SEP;
	}
	else
	{
		lpButtons.iBitmap=StockNo;
		lpButtons.fsStyle=TBSTYLE_BUTTON;
	}
	lpButtons.iString=0;

#ifdef UNDER_CE
	if (m_hwndCB!=NULL)
	{
		CommandBar_InsertButton(m_hwndCB,Index,
                                   (LPTBBUTTON)&lpButtons);
		if (Index<MAXBUTTONS)
		{
			SortToolTips(Index);
			if (ID!=0)
			{
			   m_szTTips[m_CurrentBar][Index]=(LPTSTR)LocalAlloc(LMEM_ZEROINIT,
                              sizeof(TCHAR)*(lstrlen(ToolTipText)+2));				   
			   wsprintf(m_szTTips[m_CurrentBar][Index],ToolTipText); 
			   if (Index>m_iMaxButtons[m_CurrentBar]) m_iMaxButtons[m_CurrentBar]=Index;
			}
			CommandBar_AddToolTips(m_hwndCB,
                                         m_iMaxButtons[m_CurrentBar]+1,m_szTTips[m_CurrentBar]);
		}
	}
#else	// Code for Desktop here
#endif


	return S_OK;
}

STDMETHODIMP CPCDMCommander::InsertComboBox(int Size, int Index, int ID)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())
#ifdef UNDER_CE
	if (m_hwndCB!=NULL)
	{
		m_ComboStuff.handle[m_ComboStuff.curCnt].ID=ID;
		m_ComboStuff.handle[m_ComboStuff.curCnt].hWnd=
								CommandBar_InsertComboBox(m_hwndCB,
								  _Module.m_hInst,Size,NULL,ID,Index);
		SortToolTips(Index);
		m_ComboStuff.curCnt++;
	}
#else	// Code for Desktop here
#endif
	return S_OK;
}

STDMETHODIMP CPCDMCommander::AddStringToComboBox(int ID, BSTR text)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	int tCombo=-1;
	for (int i=0;i<m_ComboStuff.curCnt;i++)
	{
		if (ID==(int)m_ComboStuff.handle[i].ID)
		{
			tCombo=i;
			break;
		}
	}
	if (tCombo>=0)
	{
		if (lstrcmp(text,TEXT("<CLR>"))==0)
			SendMessage(m_ComboStuff.handle[i].hWnd,
                              CB_RESETCONTENT,0,0);
		else
			SendMessage(m_ComboStuff.handle[i].hWnd,
                              CB_ADDSTRING,0,(LPARAM)(LPCSTR)text);
	}


	return S_OK;
}

STDMETHODIMP CPCDMCommander::SetAdornments(int Flags)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

#ifdef UNDER_CE
	if (m_CmdBarType==CMDBAR)
	{
		if (m_hwndCB!=NULL)
			CommandBar_AddAdornments(m_hwndCB, Flags,0);
	}
// <BOOK_ADDON Step3: Chapter 7.2.2> ***************************************
	else
	{
		if (m_hwndCBand!=NULL)
			CommandBands_AddAdornments(m_hwndCBand,
                                         _Module.m_hInst,Flags,NULL);
	
	}
// </BOOK_ADDON Step3: Chapter 7.2.2> ***************************************
#else	// Code for Desktop here
#endif

	return S_OK;
}


////////////////// EVENT HANDLER *********************************

LRESULT CPCDMCommander::OnCommand(UINT uMsg, WPARAM wParam, 
                              LPARAM lParam, BOOL& bHandled)
{
	if (HIWORD(wParam)!=0)	// Caught the Combo-Box
	{
		int tCombo=-1,u;
		for (int i=0;i<m_ComboStuff.curCnt;i++)
		{
			if ((HWND)lParam==m_ComboStuff.handle[i].hWnd)
			{
				tCombo=i;
				break;
			}
		}
		if (tCombo>=0)
		{
			switch (HIWORD(wParam))
			{
				case 5:
                 	SendMessage((HWND)lParam,
                             WM_GETTEXT,(WPARAM)255,
                             (LPARAM)m_ComboStuff.handle[tCombo].Text);
                 Fire_CmdBarAction(LOWORD(wParam),
                                   m_ComboStuff.handle[tCombo].Text);
					break;
				case 1:
					u=SendMessage((HWND)lParam,CB_GETCURSEL,0,0);
					SendMessage((HWND)lParam,CB_GETLBTEXT,
								(WPARAM)u,(LPARAM)m_ComboStuff.handle[tCombo].Text);
					Fire_CmdBarAction(LOWORD(wParam),m_ComboStuff.handle[tCombo].Text);
					break;
				default:
					break;
			}
		}
	} 
	else
	{
		Fire_CmdBarAction(wParam,TEXT(""));
	}
	return S_OK;
}

LRESULT CPCDMCommander::OnClose(UINT uMsg, WPARAM wParam, 
                            LPARAM lParam, BOOL& bHandled)
{
	Fire_CmdBarAction(IDCLOSE,TEXT(""));
	return S_OK;
}

LRESULT CPCDMCommander::OnDestroy(UINT uMsg, WPARAM wParam, 
                              LPARAM lParam, BOOL& bHandled)
{
int i;

	for (i=0;i<MAXBUTTONS;i++) 
		if (!m_szTTips[m_CurrentBar][i])  
			LocalFree(m_szTTips[m_CurrentBar][i]);
	return S_OK;
}

LRESULT CPCDMCommander::NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
	if (idCtrl==m_IDBAR && m_bIsFresh==FALSE)
	{
		FireViewChange();
		m_bIsFresh=TRUE;
	}
	return S_OK;
}
// </BOOK_ADDON Step2: Chapter 7.1.2> ***************************************

// <BOOK_ADDON Step2: Chapter 7.2.2> ***************************************
STDMETHODIMP CPCDMCommander::SetCmdBarType(int type)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	if (type!=0)
		m_CmdBarType=CMDBAND;
	else
		m_CmdBarType=CMDBAR;

	return S_OK;
}

// </BOOK_ADDON Step2: Chapter 7.1.2> ***************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美在线观看| 老汉av免费一区二区三区| 91精品国产综合久久久久久久久久| 裸体在线国模精品偷拍| 《视频一区视频二区| 欧美成人在线直播| 欧美中文字幕一区二区三区| 成人免费三级在线| 蜜臀国产一区二区三区在线播放| 亚洲男同性恋视频| 国产网红主播福利一区二区| 911精品国产一区二区在线| jlzzjlzz国产精品久久| 国产精品小仙女| 麻豆91在线播放| 天使萌一区二区三区免费观看| 自拍偷拍亚洲激情| 国产精品久久久久aaaa樱花| 337p日本欧洲亚洲大胆色噜噜| 欧美高清视频一二三区 | 久久99国内精品| 一区二区不卡在线播放| 国产精品另类一区| 国产亚洲午夜高清国产拍精品| 91精品久久久久久蜜臀| 色吧成人激情小说| 久久综合久久综合亚洲| 制服丝袜成人动漫| 777亚洲妇女| 制服丝袜亚洲播放| 91麻豆精品91久久久久同性| 欧美视频你懂的| 在线亚洲精品福利网址导航| 91在线视频播放地址| 成人h动漫精品一区二区| 国产aⅴ精品一区二区三区色成熟| 精品在线视频一区| 国产尤物一区二区在线| 韩国成人精品a∨在线观看| 久久精品999| 精品一区二区影视| 国产一区在线观看视频| 国产一区二区精品久久99| 国产在线精品一区二区夜色| 国产一区二区精品久久| 懂色av一区二区三区免费看| 丁香激情综合五月| 91免费观看国产| 欧美丝袜第三区| 91精品在线观看入口| 日韩精品一区二区三区老鸭窝 | 欧美夫妻性生活| 欧美日韩另类国产亚洲欧美一级| 欧美综合欧美视频| 欧美日韩激情在线| 精品美女被调教视频大全网站| 精品国产凹凸成av人导航| 久久久久成人黄色影片| 国产精品美女久久久久av爽李琼| 国产精品短视频| 亚洲线精品一区二区三区八戒| 日韩不卡一区二区三区| 国产乱国产乱300精品| www.色精品| 欧美伦理电影网| 久久众筹精品私拍模特| 亚洲日本在线a| 亚洲成av人片| 国内精品国产成人国产三级粉色| 成人av午夜电影| 欧美日韩精品免费| 久久久久免费观看| 一区二区三区在线观看视频| 午夜视黄欧洲亚洲| 国产成人啪免费观看软件| 91福利视频网站| 日韩美女在线视频| 亚洲特黄一级片| 捆绑紧缚一区二区三区视频 | 日韩欧美一区二区三区在线| 久久五月婷婷丁香社区| ●精品国产综合乱码久久久久| 午夜精品久久一牛影视| 国产99久久久国产精品潘金 | 欧美日韩一区二区在线视频| 日韩欧美综合在线| 国产精品久久久久国产精品日日| 日韩avvvv在线播放| 成人激情免费电影网址| 欧美一区三区二区| 亚洲少妇中出一区| 国产激情视频一区二区在线观看| 欧美日韩一区二区电影| 中文字幕va一区二区三区| 首页亚洲欧美制服丝腿| 不卡在线观看av| 日韩欧美一区中文| 一区二区三区免费| 国产成人福利片| 91精品欧美一区二区三区综合在 | 麻豆中文一区二区| 色琪琪一区二区三区亚洲区| 欧美精品一区二区精品网| 亚洲影视资源网| 99久久久免费精品国产一区二区| 欧美高清精品3d| 亚洲男同1069视频| 国产91精品一区二区麻豆亚洲| 日韩一级片网站| 午夜欧美2019年伦理| 91浏览器打开| 国产精品麻豆一区二区| 久久99精品久久久久久动态图 | 欧美一区二区观看视频| 色婷婷精品大视频在线蜜桃视频 | 日韩欧美的一区二区| 亚洲国产中文字幕| 色吊一区二区三区| 亚洲欧美在线高清| 国产91精品在线观看| 精品99一区二区三区| 人人精品人人爱| 欧美日韩国产精品自在自线| 亚洲无人区一区| 日本二三区不卡| 一区二区三区免费看视频| 色94色欧美sute亚洲线路一ni| 最新日韩在线视频| 91在线一区二区| 亚洲久草在线视频| 在线一区二区三区做爰视频网站| 亚洲欧洲av一区二区三区久久| 丁香五精品蜜臀久久久久99网站| 久久久777精品电影网影网 | 欧美在线999| 一区二区欧美在线观看| 91亚洲精品一区二区乱码| 亚洲欧美激情小说另类| 色欧美片视频在线观看在线视频| 日韩理论片一区二区| heyzo一本久久综合| 亚洲欧美日韩国产综合在线| 色婷婷综合久色| 亚洲主播在线观看| 9191久久久久久久久久久| 蓝色福利精品导航| 国产欧美一区二区精品性色超碰| 国产成都精品91一区二区三| 国产精品久久久久四虎| 91福利社在线观看| 青青草成人在线观看| 久久先锋影音av鲁色资源| 成人av电影在线观看| 亚洲人成小说网站色在线| 色婷婷av一区二区三区大白胸| 亚洲午夜免费福利视频| 91精品国产综合久久香蕉的特点| 久久99热这里只有精品| 中国色在线观看另类| 色综合久久久网| 欧美日韩不卡在线| 韩国欧美国产1区| 中文字幕一区二区在线观看| 色国产精品一区在线观看| 青青草97国产精品免费观看 | 最近中文字幕一区二区三区| 欧美中文字幕一区二区三区 | 久久精品一区蜜桃臀影院| av亚洲精华国产精华精华| 亚洲大片精品永久免费| 精品久久久久久亚洲综合网 | 欧美大片日本大片免费观看| 国产福利一区二区三区在线视频| 亚洲欧美成aⅴ人在线观看| 欧美一区二区在线观看| 国产成人无遮挡在线视频| 一区二区三区成人在线视频| 精品乱码亚洲一区二区不卡| 不卡一区二区在线| 免费成人av在线| 亚洲美女视频在线| 欧美r级电影在线观看| 91污在线观看| 韩国av一区二区| 一区二区三区在线播| 裸体健美xxxx欧美裸体表演| 中文字幕一区二区三区色视频| 欧美精品v国产精品v日韩精品| 国产成人亚洲综合a∨婷婷图片| 一区二区三区在线免费观看| 久久精品欧美日韩精品| 欧美精品日日鲁夜夜添| www.色精品| 国产一区二区三区综合| 午夜国产精品一区| 亚洲男人天堂一区| 日本一区二区三区国色天香 | 亚洲欧洲国产日本综合| 欧美大片拔萝卜| 欧美精品粉嫩高潮一区二区|