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

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

?? bcmenu.cpp

?? 可以檢測(cè)到插入到USB的設(shè)備的插入或者拔出
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
	m_fontMenu.DeleteObject();
}

void BCMenu::LoadCheckmarkBitmap(int unselect, int select)
{
	if(unselect>0 && select>0){
		m_selectcheck=select;
		m_unselectcheck=unselect;
		if(checkmaps)checkmaps->DeleteImageList();
		else checkmaps=new(CImageList);
		checkmaps->Create(m_iconX,m_iconY,ILC_MASK,2,1);
		BOOL flag1=AddBitmapToImageList(checkmaps,unselect);
		BOOL flag2=AddBitmapToImageList(checkmaps,select);
		if(!flag1||!flag2){
			checkmaps->DeleteImageList();
			delete checkmaps;
			checkmaps=NULL;
		}
	}
}

//--------------------------------------------------------------------------
//[18.06.99 rj]
BOOL BCMenu::GetMenuText(UINT id, CString& string, UINT nFlags/*= MF_BYPOSITION*/)
{
	BOOL returnflag=FALSE;
	
	if(MF_BYPOSITION&nFlags){
		UINT numMenuItems = m_MenuList.GetUpperBound();
		if(id<=numMenuItems){
			string=m_MenuList[id]->GetString();
			returnflag=TRUE;
		}
	}
	else{
		int uiLoc;
		BCMenu* pMenu = FindMenuOption(id,uiLoc);
		if(NULL!=pMenu) returnflag = pMenu->GetMenuText(uiLoc,string);
	}
	return(returnflag);
}


void BCMenu::DrawRadioDot(CDC *pDC,int x,int y,COLORREF color)
{
	CRect rcDot(x,y,x+6,y+6);
	CBrush brush;
	CPen pen;
	brush.CreateSolidBrush(color);
	pen.CreatePen(PS_SOLID,0,color);
	CBrush *pOldBrush=pDC->SelectObject(&brush);
	CPen *pOldPen=pDC->SelectObject(&pen);
	pDC->Ellipse(&rcDot);
	pDC->SelectObject(pOldBrush);
	pDC->SelectObject(pOldPen);
	pen.DeleteObject();
	brush.DeleteObject();
}

void BCMenu::DrawCheckMark(CDC* pDC,int x,int y,COLORREF color)
{
	CPen m_penBack;
	m_penBack.CreatePen (PS_SOLID,0,color);
	CPen *pOldPen = pDC->SelectObject (&m_penBack);
	pDC->MoveTo(x,y+2);
	pDC->LineTo(x,y+5);
	
	pDC->MoveTo(x+1,y+3);
	pDC->LineTo(x+1,y+6);
	
	pDC->MoveTo(x+2,y+4);
	pDC->LineTo(x+2,y+7);
	
	pDC->MoveTo(x+3,y+3);
	pDC->LineTo(x+3,y+6);
	
	pDC->MoveTo(x+4,y+2);
	pDC->LineTo(x+4,y+5);
	
	pDC->MoveTo(x+5,y+1);
	pDC->LineTo(x+5,y+4);
	
	pDC->MoveTo(x+6,y);
	pDC->LineTo(x+6,y+3);
	
	pDC->SelectObject (pOldPen);
	m_penBack.DeleteObject();
}

BCMenuData *BCMenu::FindMenuList(UINT nID)
{
	for(int i=0;i<=m_MenuList.GetUpperBound();++i){
		if(m_MenuList[i]->nID==nID && !m_MenuList[i]->syncflag){
			m_MenuList[i]->syncflag=1;
			return(m_MenuList[i]);
		}
	}
	return(NULL);
}

void BCMenu::InitializeMenuList(int value)
{
	for(int i=0;i<=m_MenuList.GetUpperBound();++i)
		m_MenuList[i]->syncflag=value;
}

void BCMenu::DeleteMenuList(void)
{
	for(int i=0;i<=m_MenuList.GetUpperBound();++i){
		if(!m_MenuList[i]->syncflag){
			delete m_MenuList[i];
		}
	}
}

void BCMenu::SynchronizeMenu(void)
{
	CTypedPtrArray<CPtrArray, BCMenuData*> temp;
	BCMenuData *mdata;
	CString string;
	UINT submenu,nID=0,state,j;
	
	InitializeMenuList(0);
	for(j=0;j<GetMenuItemCount();++j){
		mdata=NULL;
		state=GetMenuState(j,MF_BYPOSITION);
		if(state&MF_POPUP){
			submenu=(UINT)GetSubMenu(j)->m_hMenu;
			mdata=FindMenuList(submenu);
			GetMenuString(j,string,MF_BYPOSITION);
			if(!mdata)mdata=NewODMenu(j,
				(state&0xFF)|MF_BYPOSITION|MF_POPUP|MF_OWNERDRAW,submenu,string);
			else if(string.GetLength()>0)
#ifdef UNICODE
				mdata->SetWideString(string);  //SK: modified for dynamic allocation
#else
			mdata->SetAnsiString(string);
#endif
		}
		else if(state&MF_SEPARATOR){
			mdata=FindMenuList(0);
			if(!mdata)mdata=NewODMenu(j,
				state|MF_BYPOSITION|MF_SEPARATOR|MF_OWNERDRAW,0,_T(""));//SK: modified for Unicode correctness
			else ModifyMenu(j,mdata->nFlags,nID,(LPCTSTR)mdata);
		}
		else{
			nID=GetMenuItemID(j);
			mdata=FindMenuList(nID);
			GetMenuString(j,string,MF_BYPOSITION);
			if(!mdata)mdata=NewODMenu(j,state|MF_BYPOSITION|MF_OWNERDRAW,
				nID,string);
			else{
				mdata->nFlags=state|MF_BYPOSITION|MF_OWNERDRAW;
				if(string.GetLength()>0)
#ifdef UNICODE
					mdata->SetWideString(string);//SK: modified for dynamic allocation
#else
				mdata->SetAnsiString(string);
#endif
				
				ModifyMenu(j,mdata->nFlags,nID,(LPCTSTR)mdata);
			}
		}
		if(mdata)temp.Add(mdata);
	}
	DeleteMenuList();
	m_MenuList.RemoveAll();
	m_MenuList.Append(temp);
	temp.RemoveAll(); 
}

void BCMenu::UpdateMenu(CMenu *pmenu)
{
#ifdef _CPPRTTI 
	BCMenu *psubmenu = dynamic_cast<BCMenu *>(pmenu);
#else
	BCMenu *psubmenu = (BCMenu *)pmenu;
#endif
	if(psubmenu)psubmenu->SynchronizeMenu();
}

LRESULT BCMenu::FindKeyboardShortcut(UINT nChar, UINT nFlags,
                                     CMenu *pMenu)
{
#ifdef _CPPRTTI 
	BCMenu *pBCMenu = dynamic_cast<BCMenu *>(pMenu);
#else
	BCMenu *pBCMenu = (BCMenu *)pMenu;
#endif
	if(pBCMenu && nFlags&MF_POPUP){
		CString key(_T('&'),2);//SK: modified for Unicode correctness
		key.SetAt(1,(TCHAR)nChar);
		key.MakeLower();
		CString menutext;
		int menusize = (int)pBCMenu->GetMenuItemCount();
		if(menusize!=(pBCMenu->m_MenuList.GetUpperBound()+1))
			pBCMenu->SynchronizeMenu();
		for(int i=0;i<menusize;++i){
			if(pBCMenu->GetMenuText(i,menutext)){
				menutext.MakeLower();
				if(menutext.Find(key)>=0)return(MAKELRESULT(i,2));
			}
		}
	}
	return(0);
}

void BCMenu::DitherBlt (HDC hdcDest, int nXDest, int nYDest, int nWidth, 
                        int nHeight, HBITMAP hbm, int nXSrc, int nYSrc,
						COLORREF bgcolor)
{
	ASSERT(hdcDest && hbm);
	ASSERT(nWidth > 0 && nHeight > 0);
	
	// Create a generic DC for all BitBlts
	HDC hDC = CreateCompatibleDC(hdcDest);
	ASSERT(hDC);
	
	if (hDC)
	{
		// Create a DC for the monochrome DIB section
		HDC bwDC = CreateCompatibleDC(hDC);
		ASSERT(bwDC);
		
		if (bwDC)
		{
			// Create the monochrome DIB section with a black and white palette
			struct {
				BITMAPINFOHEADER bmiHeader; 
				RGBQUAD      bmiColors[2]; 
			} RGBBWBITMAPINFO = {
				
				{    // a BITMAPINFOHEADER
					sizeof(BITMAPINFOHEADER),  // biSize 
						nWidth,         // biWidth; 
						nHeight,        // biHeight; 
						1,            // biPlanes; 
						1,            // biBitCount 
						BI_RGB,         // biCompression; 
						0,            // biSizeImage; 
						0,            // biXPelsPerMeter; 
						0,            // biYPelsPerMeter; 
						0,            // biClrUsed; 
						0            // biClrImportant; 
				},    
				{
					{ 0x00, 0x00, 0x00, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }
					} 
			};
			VOID *pbitsBW;
			HBITMAP hbmBW = CreateDIBSection(bwDC,
				(LPBITMAPINFO)&RGBBWBITMAPINFO, DIB_RGB_COLORS, &pbitsBW, NULL, 0);
			ASSERT(hbmBW);
			
			if (hbmBW)
			{
				// Attach the monochrome DIB section and the bitmap to the DCs
				HBITMAP olddib = (HBITMAP)SelectObject(bwDC, hbmBW);
				HBITMAP hdcolddib = (HBITMAP)SelectObject(hDC, hbm);
				
				// BitBlt the bitmap into the monochrome DIB section
				BitBlt(bwDC, 0, 0, nWidth, nHeight, hDC, nXSrc, nYSrc, SRCCOPY);
				
				// Paint the destination rectangle in gray
				FillRect(hdcDest, CRect(nXDest, nYDest, nXDest + nWidth, nYDest +
					nHeight), GetSysColorBrush(bgcolor));
				//SK: looks better on the old shell
				// BitBlt the black bits in the monochrome bitmap into COLOR_3DHILIGHT
				// bits in the destination DC
				// The magic ROP comes from the Charles Petzold's book
				HBRUSH hb = CreateSolidBrush(GetSysColor(COLOR_3DHILIGHT));
				HBRUSH oldBrush = (HBRUSH)SelectObject(hdcDest, hb);
				BitBlt(hdcDest,nXDest+1,nYDest+1,nWidth,nHeight,bwDC,0,0,0xB8074A);
				
				// BitBlt the black bits in the monochrome bitmap into COLOR_3DSHADOW
				// bits in the destination DC
				hb = CreateSolidBrush(GetSysColor(COLOR_3DSHADOW));
				DeleteObject(SelectObject(hdcDest, hb));
				BitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight,bwDC,0,0,0xB8074A);
				DeleteObject(SelectObject(hdcDest, oldBrush));
				VERIFY(DeleteObject(SelectObject(bwDC, olddib)));
				SelectObject(hDC, hdcolddib);
			}
			
			VERIFY(DeleteDC(bwDC));
		}
		
		VERIFY(DeleteDC(hDC));
	}
}

void BCMenu::GetFadedBitmap(CBitmap &bmp)
{
	CDC ddc;
	COLORREF bgcol,col;
	BITMAP BitMap;

	bmp.GetBitmap(&BitMap);
	ddc.CreateCompatibleDC(NULL);
	CBitmap * pddcOldBmp = ddc.SelectObject(&bmp);

	// use this to get the background color, takes into account color shifting
	CDC ddc2;
	CBrush brush;
	CBitmap bmp2;
	ddc2.CreateCompatibleDC(NULL);
	bmp2.CreateCompatibleBitmap(&ddc,BitMap.bmWidth,BitMap.bmHeight);
	col=GetSysColor(COLOR_3DFACE);
	brush.CreateSolidBrush(col);
	CBitmap * pddcOldBmp2 = ddc2.SelectObject(&bmp2);
	CRect rect(0,0,BitMap.bmWidth,BitMap.bmHeight);
	ddc2.FillRect(rect,&brush);
	bgcol=ddc2.GetPixel(1,1);
	brush.DeleteObject();
	ddc2.SelectObject(pddcOldBmp2);

	for(int i=0;i<BitMap.bmWidth;++i){
		for(int j=0;j<BitMap.bmHeight;++j){
			col=ddc.GetPixel(i,j);
			if(col!=bgcol)ddc.SetPixel(i,j,LightenColor(col,0.3));
		}
	}
	ddc.SelectObject(pddcOldBmp);
}

void BCMenu::GetShadowBitmap(CBitmap &bmp)
{
	CDC ddc;
	COLORREF bgcol,col,shadowcol=GetSysColor(COLOR_BTNSHADOW);
	BITMAP BitMap;

	if(!IsWinXPLuna())shadowcol=LightenColor(shadowcol,0.49);
	bmp.GetBitmap(&BitMap);
	ddc.CreateCompatibleDC(NULL);
	CBitmap * pddcOldBmp = ddc.SelectObject(&bmp);

	// use this to get the background color, takes into account color shifting
	CDC ddc2;
	CBrush brush;
	CBitmap bmp2;
	ddc2.CreateCompatibleDC(NULL);
	bmp2.CreateCompatibleBitmap(&ddc,BitMap.bmWidth,BitMap.bmHeight);
	col=GetSysColor(COLOR_3DFACE);
	brush.CreateSolidBrush(col);
	CBitmap * pddcOldBmp2 = ddc2.SelectObject(&bmp2);
	CRect rect(0,0,BitMap.bmWidth,BitMap.bmHeight);
	ddc2.FillRect(rect,&brush);
	bgcol=ddc2.GetPixel(1,1);
	brush.DeleteObject();
	ddc2.SelectObject(pddcOldBmp2);

	for(int i=0;i<BitMap.bmWidth;++i){
		for(int j=0;j<BitMap.bmHeight;++j){
			col=ddc.GetPixel(i,j);
			if(col!=bgcol)ddc.SetPixel(i,j,shadowcol);
		}
	}
	ddc.SelectObject(pddcOldBmp);
}


BOOL BCMenu::AddBitmapToImageList(CImageList *bmplist,UINT nResourceID)
{
	BOOL bReturn=FALSE;

	// O.S.
	if (m_bDynIcons){
		bmplist->Add((HICON)nResourceID);
		bReturn=TRUE;
	}
	else{
		HBITMAP hbmp=LoadSysColorBitmap(nResourceID);
		if(hbmp){
			CBitmap bmp;
			bmp.Attach(hbmp);
			if(m_bitmapBackgroundFlag){
				if(bmplist->Add(&bmp,m_bitmapBackground)>=0)bReturn=TRUE;
			}
			else{
				if(bmplist->Add(&bmp,GetSysColor(COLOR_3DFACE))>=0)bReturn=TRUE;
			}
			bmp.Detach();
			DeleteObject(hbmp);
		}
		else{
			CBitmap mybmp;
			if(mybmp.LoadBitmap(nResourceID)){
				if(m_bitmapBackgroundFlag){
					if(bmplist->Add(&mybmp,m_bitmapBackground)>=0)bReturn=TRUE;
				}
				else{
					if(bmplist->Add(&mybmp,GetSysColor(COLOR_3DFACE))>=0)bReturn=TRUE;
				}
			}
		}
	}
	if(bReturn&&IsLunaMenuStyle()&&xp_draw_3D_bitmaps){
		CWnd *pWnd = AfxGetMainWnd();            // Get main window
		if (pWnd == NULL) pWnd = CWnd::GetDesktopWindow();
		CDC *pDC = pWnd->GetDC();              // Get device context
		CBitmap bmp,bmp2;
		GetBitmapFromImageList(pDC,bmplist,0,bmp);
		GetFadedBitmap(bmp);
		bmplist->Add(&bmp,GetSysColor(COLOR_3DFACE));
		GetBitmapFromImageList(pDC,bmplist,0,bmp2);
		GetShadowBitmap(bmp2);
		bmplist->Add(&bmp2,GetSysColor(COLOR_3DFACE));
		pWnd->ReleaseDC(pDC);  // Release the DC
	}
	return(bReturn);
}

void BCMenu::SetBitmapBackground(COLORREF color)
{
	m_bitmapBackground=color;
	m_bitmapBackgroundFlag=TRUE;
}

void BCMenu::UnSetBitmapBackground(void)
{
	m_bitmapBackgroundFlag=FALSE;
}

// Given a toolbar, append all the options from it to this menu
// Passed a ptr to the toolbar object and the toolbar ID
// Author : Robert Edward Caldecott
void BCMenu::AddFromToolBar(CToolBar* pToolBar, int nResourceID)
{
	for (int i = 0; i < pToolBar->GetCount(); i++) {
		UINT nID = pToolBar->GetItemID(i);
		// See if this toolbar option
		// appears as a command on this
		// menu or is a separator
		if (nID == 0 || GetMenuState(nID, MF_BYCOMMAND) == 0xFFFFFFFF)
			continue; // Item doesn't exist
		UINT nStyle;
		int nImage;
		// Get the toolbar button info
		pToolBar->GetButtonInfo(i, nID, nStyle, nImage);
		// OK, we have the command ID of the toolbar
		// option, and the tollbar bitmap offset
		int nLoc;
		BCMenuData* pData;
		BCMenu *pSubMenu = FindMenuOption(nID, nLoc);
		if (pSubMenu && nLoc >= 0)pData = pSubMenu->m_MenuList[nLoc];
		else {
			// Create a new BCMenuData structure
			pData = new BCMenuData;
			m_MenuList.Add(pData);
		}
		// Set some default structure members
		pData->menuIconNormal = nResourceID;
		pData->nID = nID;
		pData->nFlags =  MF_BYCOMMAND | 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线短视频| 亚洲精品国久久99热| 91精品国产欧美一区二区| 欧美在线999| 91久久精品一区二区三区| 成人福利视频在线| av毛片久久久久**hd| 99久久免费精品| 一本一道综合狠狠老| 色天天综合色天天久久| 色菇凉天天综合网| 在线免费观看日本一区| 欧美性猛交xxxxxxxx| 欧美美女视频在线观看| 538在线一区二区精品国产| 91精品国产色综合久久不卡电影 | 在线一区二区观看| 色先锋资源久久综合| 日本大香伊一区二区三区| 色猫猫国产区一区二在线视频| 色综合夜色一区| 精品视频在线免费看| 欧美精品乱码久久久久久| 欧美疯狂性受xxxxx喷水图片| 7777精品伊人久久久大香线蕉 | 欧美日韩欧美一区二区| 欧美日韩免费视频| 91精品国产高清一区二区三区| 日韩欧美国产综合在线一区二区三区| 日韩免费高清电影| 国产女同互慰高潮91漫画| 成人欧美一区二区三区1314| 亚洲午夜私人影院| 蜜桃av一区二区在线观看| 国产成人精品三级| 色老综合老女人久久久| 91精品国模一区二区三区| 欧美精品一区视频| 中文字幕一区在线| 亚洲高清免费在线| 国产在线一区观看| 91久久一区二区| 精品国产免费人成在线观看| 国产精品每日更新| 亚洲成人777| 国产精品综合久久| 欧美中文字幕亚洲一区二区va在线 | 午夜精品福利久久久| 国内精品久久久久影院一蜜桃| 99精品久久99久久久久| 91麻豆精品国产综合久久久久久| 久久久久久毛片| 亚洲福利一区二区| 国产盗摄女厕一区二区三区| 欧美视频在线一区| 国产日韩精品一区二区浪潮av| 一区二区激情视频| 国产精品影视天天线| 精品视频在线视频| 中文天堂在线一区| 蜜桃91丨九色丨蝌蚪91桃色| 91亚洲精品一区二区乱码| 欧美大片免费久久精品三p| 日韩美女精品在线| 久久国产生活片100| 色综合天天在线| 久久综合色婷婷| 性感美女极品91精品| 97se亚洲国产综合自在线观| 日韩精品中午字幕| 亚洲一区在线观看视频| 粉嫩av一区二区三区| 日韩精品影音先锋| 亚洲成人免费av| 91丝袜高跟美女视频| 久久精品一区二区三区不卡| 日韩一区精品字幕| 91行情网站电视在线观看高清版| 欧美极品aⅴ影院| 蜜臀a∨国产成人精品| 精品视频一区二区三区免费| 中文字幕一区在线| 成人午夜av电影| 久久久久久久国产精品影院| 日本女人一区二区三区| 91福利国产成人精品照片| 国产精品福利一区二区三区| 国模大尺度一区二区三区| 欧美一级一区二区| 亚洲国产欧美在线人成| 91免费看`日韩一区二区| 国产精品色婷婷| 高清av一区二区| 久久久久久久久一| 美女精品一区二区| 911精品产国品一二三产区| 亚洲国产综合色| 欧美色图片你懂的| 亚洲福利国产精品| 欧美视频一区二区三区四区| 亚洲精品免费在线| 91国偷自产一区二区开放时间| 国产精品久久久久久一区二区三区| 国产在线精品一区二区夜色 | 久久久三级国产网站| 久久99久久久欧美国产| 欧美一区二区视频免费观看| 日韩在线一区二区| 日韩一区二区视频在线观看| 欧美a一区二区| 欧美一区二区成人6969| 日本最新不卡在线| 欧美一区二区在线看| 免费人成黄页网站在线一区二区| 91精品国产欧美日韩| 麻豆成人91精品二区三区| 精品国产91洋老外米糕| 国产精品一区二区你懂的| 国产亚洲短视频| 成人国产一区二区三区精品| 中文字幕一区日韩精品欧美| 色婷婷av一区二区三区gif| 亚洲国产精品影院| 91精品免费在线观看| 九色|91porny| 国产欧美日韩综合| 97久久超碰国产精品| 一区二区三区高清| 91精品一区二区三区在线观看| 麻豆国产欧美日韩综合精品二区| 精品久久久久久综合日本欧美| 国产一区二区h| 中文字幕一区二区三区精华液| 色一情一乱一乱一91av| 日韩成人av影视| 久久精品一级爱片| 91麻豆视频网站| 日韩国产高清在线| 久久精品亚洲精品国产欧美| 99国产一区二区三精品乱码| 亚洲成在线观看| 久久综合色8888| 91丨国产丨九色丨pron| 日韩精品成人一区二区在线| 久久五月婷婷丁香社区| 99精品视频中文字幕| 日韩成人一级片| 国产亚洲一区二区在线观看| 97久久精品人人做人人爽| 视频在线观看一区二区三区| 久久精品一区八戒影视| 欧美性一二三区| 国产在线精品免费av| 亚洲最色的网站| 精品国产一二三| 欧美亚洲综合久久| 国产精品一二三四五| 一区二区三区在线视频观看| 精品国产乱码久久久久久蜜臀| 91在线观看免费视频| 久久99精品视频| 夜夜爽夜夜爽精品视频| 久久久99精品免费观看| 欧美日韩另类一区| 国产 日韩 欧美大片| 手机精品视频在线观看| 日韩毛片高清在线播放| 日韩一区二区免费高清| 一本久久a久久精品亚洲| 黄色精品一二区| 午夜精品一区二区三区电影天堂 | 成人午夜视频免费看| 石原莉奈一区二区三区在线观看| 欧美国产国产综合| 欧美大尺度电影在线| 91激情在线视频| 成人一区二区视频| 麻豆国产精品777777在线| 亚洲一区二区高清| 中文成人av在线| 26uuu国产日韩综合| 欧美日韩国产另类不卡| 91丝袜国产在线播放| 成人污污视频在线观看| 激情综合五月婷婷| 日日夜夜一区二区| 亚洲激情在线激情| 国产精品不卡一区| 国产日韩欧美高清在线| 精品免费国产一区二区三区四区| 欧美日韩精品高清| 欧亚一区二区三区| 在线一区二区视频| 日本韩国欧美在线| 99麻豆久久久国产精品免费| 国产成a人无v码亚洲福利| 紧缚奴在线一区二区三区| 轻轻草成人在线| 日本在线不卡视频一二三区| 亚洲国产综合色|