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

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

?? pcdmcommander.cpp

?? 《Windows CE 權(quán)威指南》(作者:(美)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
// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	if (LOWORD(m_CePlatform)==CEP_PALMPCV3)
	{
		if (m_hwndCB!=NULL) return S_OK;
typedef BOOL (*SHCREATEMENUBARPROC)(SHMENUBARINFO *pvParam);
SHCREATEMENUBARPROC	g_hSHCreateMenuBar=NULL;
SHMENUBARINFO		mbi;
HINSTANCE			hAygDll;

		hAygDll = LoadLibrary(TEXT("aygshell.dll"));
		if (hAygDll)
		{
			g_hSHCreateMenuBar =(SHCREATEMENUBARPROC)
			GetProcAddress(hAygDll, TEXT("SHCreateMenuBar"));
			memset(&mbi, 0, sizeof(SHMENUBARINFO));
			mbi.cbSize     = sizeof(SHMENUBARINFO);
			mbi.hwndParent = m_hWnd; 
			mbi.dwFlags	   = 0; 
			mbi.nToolBarId = IDR_MAIN_MENU;
			mbi.hInstRes   = _Module.m_hInst;
			mbi.nBmpId	   = IDR_TOOLBAR;
			mbi.cBmpImages = 17;
					
			(*g_hSHCreateMenuBar)(&mbi);		
			m_hwndCB=mbi.hwndMB;
		}
		else
		{	return S_FALSE;	}

		return S_OK;
	}
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	
	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())

// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	if (LOWORD(m_CePlatform)==CEP_PALMPCV3)
	{
		TBBUTTONINFO tbbi;
		tbbi.cbSize = sizeof(tbbi);
		tbbi.dwMask = TBIF_LPARAM;
		SendMessage(m_hwndCB,
					TB_GETBUTTONINFO,
					ID_FILE,
					(LPARAM)&tbbi);

		m_MyPopup[Index]= (HMENU)tbbi.lParam;
		DeleteMenu(m_MyPopup[Index],12345,MF_BYCOMMAND);
		m_iMaxButtons[m_CurrentBar]=1;
		return S_OK;
	}
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************

   	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)
		{
// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
			if (LOWORD(m_CePlatform)==CEP_PALMPCV3)
			{
				if (ID!=0)
				{
					m_szTTips[m_CurrentBar][m_iMaxButtons[m_CurrentBar]]=(LPTSTR)LocalAlloc(LMEM_ZEROINIT,
                              sizeof(TCHAR)*(lstrlen(ToolTipText)+2));				   
					wsprintf(m_szTTips[m_CurrentBar][m_iMaxButtons[m_CurrentBar]],ToolTipText); 
					m_iMaxButtons[m_CurrentBar]++;
				}
			}
			else
			{
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
				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;
				}
			} // <BOOK_ADDON Step4: Chapter 7.3.2/> ***************
			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
// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	if (LOWORD(m_CePlatform)==CEP_PALMPCV3) return S_OK;
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	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())

// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	if (LOWORD(m_CePlatform)==CEP_PALMPCV3) return S_OK;
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************

	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
// <BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	if (LOWORD(m_CePlatform)==CEP_PALMPCV3) return S_OK;
// </BOOK_ADDON Step4: Chapter 7.3.2> ***************************************
	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一区二区三区免费野_久草精品视频
国内一区二区在线| 欧洲精品视频在线观看| 不卡视频一二三四| 在线欧美一区二区| 国产精品狼人久久影院观看方式| 综合久久国产九一剧情麻豆| 日韩电影在线观看电影| 国产在线看一区| 欧美一区二区三区不卡| 日韩一区在线看| 国产不卡视频在线观看| 欧美一级生活片| 亚洲伊人伊色伊影伊综合网| 国产69精品久久99不卡| 日韩午夜在线播放| 国产一区二区伦理片| 色噜噜狠狠色综合中国| 日韩欧美中文字幕公布| 日本vs亚洲vs韩国一区三区| 欧美图区在线视频| 一区二区三区在线观看视频 | 92国产精品观看| 久久久久成人黄色影片| 国精产品一区一区三区mba桃花| 欧美日韩综合不卡| 夜夜亚洲天天久久| 欧美色大人视频| 免费在线观看精品| 久久中文娱乐网| 国产91在线|亚洲| 国产精品三级在线观看| 不卡视频在线看| 樱桃视频在线观看一区| 欧美色网站导航| 久久国产精品露脸对白| 日韩精品在线一区| 成人午夜激情影院| 亚洲精品国产成人久久av盗摄| 欧美午夜电影网| 极品美女销魂一区二区三区免费| 国产亚洲精品精华液| 色综合色狠狠综合色| 日本中文字幕一区| 国产精品国产三级国产普通话99| 91美女在线看| 国产精品亚洲专一区二区三区| 伊人性伊人情综合网| 久久亚洲精品国产精品紫薇| 色综合中文综合网| 久久精品欧美一区二区三区不卡 | 国产呦萝稀缺另类资源| 综合电影一区二区三区| 欧美一区二区二区| 99精品视频一区| 国精产品一区一区三区mba视频| 国产精品久久99| 久久久亚洲午夜电影| 欧美性大战久久久久久久蜜臀| 成人在线视频首页| 日韩成人av影视| 亚洲日本乱码在线观看| 久久久综合精品| 欧美二区三区的天堂| 91丨porny丨在线| 99久久久精品免费观看国产蜜| 美女一区二区三区在线观看| 一区二区三区日韩精品| 国产午夜精品福利| 久久久久久久国产精品影院| 7777精品伊人久久久大香线蕉完整版 | 国产精品亚洲一区二区三区在线| 天天色图综合网| 午夜免费久久看| 午夜不卡在线视频| 日韩av在线发布| 国产一区二区福利视频| 国产福利不卡视频| 99久久精品国产一区| 成人高清视频免费观看| 91麻豆蜜桃一区二区三区| 91小视频免费观看| 免费观看30秒视频久久| 久久综合综合久久综合| 久久精品国产精品亚洲精品| 国产一区二区美女| 91亚洲永久精品| 日韩午夜在线影院| 欧美国产精品中文字幕| 亚洲精品v日韩精品| 日韩电影一区二区三区| 国产成a人亚洲精| 在线观看免费成人| 国产欧美一区在线| 天堂在线一区二区| 大胆欧美人体老妇| 欧美一卡二卡三卡四卡| 国产日韩精品久久久| 日韩影院精彩在线| 成人网在线播放| 欧美性欧美巨大黑白大战| 久久综合色之久久综合| 亚洲少妇中出一区| 精品一区二区久久| 色噜噜偷拍精品综合在线| 国产精品毛片大码女人| 亚洲sss视频在线视频| 国产馆精品极品| 精品国产露脸精彩对白| 免费成人av资源网| 色88888久久久久久影院野外 | 久久久久久久久99精品| 亚洲久草在线视频| 国产乱妇无码大片在线观看| 91亚洲精品乱码久久久久久蜜桃| 日本道色综合久久| 久久亚洲一区二区三区四区| 亚洲v中文字幕| 99国产精品99久久久久久| 欧美蜜桃一区二区三区| 亚洲一区二区在线视频| 成人av片在线观看| 亚洲卡通动漫在线| 一区二区高清免费观看影视大全| 亚洲国产一区二区在线播放| 成年人网站91| 国产精品国产自产拍在线| 国产在线播放一区二区三区| 69久久夜色精品国产69蝌蚪网| 亚洲欧美日韩一区二区三区在线观看| 美腿丝袜亚洲一区| 精品国产乱码久久久久久久 | 激情文学综合插| 久久精品人人做人人爽人人| 精品一区二区在线观看| 久久婷婷久久一区二区三区| 国内精品国产成人| 国产精品久久夜| 欧美日韩视频第一区| 日本强好片久久久久久aaa| 欧美电影免费观看高清完整版在 | 亚洲一区二区三区在线看| 欧美四级电影网| 韩国欧美国产1区| 中文字幕一区二| 欧美伦理影视网| 国产91高潮流白浆在线麻豆 | 91精品国产一区二区三区蜜臀| 日韩av一级电影| 亚洲人123区| 久久免费视频一区| 欧美一级二级三级乱码| 国产成人精品www牛牛影视| 亚洲一区二区三区自拍| 久久精品视频免费观看| 欧美理论电影在线| 日本乱码高清不卡字幕| 国产高清一区日本| 国产剧情一区二区三区| 精品一区二区三区不卡| 免费人成在线不卡| 久久久蜜桃精品| 在线免费观看不卡av| av中文字幕不卡| 成人午夜伦理影院| bt欧美亚洲午夜电影天堂| 久久国产生活片100| 蜜臀av一级做a爰片久久| 1000精品久久久久久久久| 国产午夜亚洲精品午夜鲁丝片 | 欧美美女激情18p| 这里只有精品电影| 日韩一区二区三区四区| 欧美日韩国产高清一区二区 | 欧美一区二区网站| 精品久久五月天| 亚洲日本乱码在线观看| 亚洲国产精品久久不卡毛片 | 国产精品一级在线| 91丝袜美腿高跟国产极品老师 | 91精品国产综合久久精品图片| 欧美亚洲日本国产| 国产婷婷一区二区| 又紧又大又爽精品一区二区| 亚洲成a人v欧美综合天堂| 国产一区二区在线观看视频| 色综合色狠狠综合色| 欧美午夜宅男影院| 久久久综合精品| 五月激情丁香一区二区三区| 韩日精品视频一区| 欧美剧情电影在线观看完整版免费励志电影| 欧美日韩国产123区| 国产精品美日韩| 国产高清成人在线| 日韩一级大片在线| 亚洲一区二区中文在线| 成人网页在线观看| 国产精品美女www爽爽爽| 久久精品国产秦先生| 777奇米成人网|