⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 consoleoutlook.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
		for(i=1;i<hintbox.downStrNums;i++)//i from 1?
		{
			strlen=LoadText(hintbox.downRct_str[i]->strId, hintbox.downRct_str[i]->str, CNSL_HINTBOX_STR_MAXLEN);
			strlen=(strlen-2)/2;

			hintbox.downRct_str[i]->strlen = strlen;
			
			switch(i)
			{
#if 0
			case 0:	//i cannot equal to 0! comment by chena
				hintbox.downRct_str[i]->strlen=1;
				hintbox.downRct_str[i]->strWidth=SPECIAL_STR_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=2;
				break;
#endif
			case 1://str
//				hintbox.downRct_str[i]->strlen=strlen; 
				hintbox.downRct_str[i]->strWidth=GetTextWidth(hintbox.downRct_str[i]->str,-1,hintbox.downRct_str[i]->strFormat)+2;//strlen*HINT_FONT_DEFAUT_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[0]->UpL_xoff+SPECIAL_STR_WIDTH;
				break;
			case 2:
//				hintbox.downRct_str[i]->strlen=strlen;
				hintbox.downRct_str[i]->strWidth=SPECIAL_STR_WIDTH;
				//hintbox.downRct_str[i]->UpL_xoff=2;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[1]->UpL_xoff+hintbox.downRct_str[1]->strWidth+3;
				break;
			case 3://str
//				hintbox.downRct_str[i]->strlen=strlen; 
				hintbox.downRct_str[i]->strWidth=GetTextWidth(hintbox.downRct_str[i]->str,-1,hintbox.downRct_str[i]->strFormat)+2;//strlen*HINT_FONT_DEFAUT_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[2]->UpL_xoff+SPECIAL_STR_WIDTH+8;
				break;
			case 4:
//				hintbox.downRct_str[i]->strlen=strlen;
				hintbox.downRct_str[i]->strWidth=SPECIAL_STR_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[3]->UpL_xoff+hintbox.downRct_str[3]->strWidth+3;
				break;
			case 5://str
//				hintbox.downRct_str[i]->strlen=strlen; 
				hintbox.downRct_str[i]->strWidth=GetTextWidth(hintbox.downRct_str[i]->str,-1,hintbox.downRct_str[i]->strFormat)+2;//strlen*HINT_FONT_DEFAUT_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[4]->UpL_xoff+SPECIAL_STR_WIDTH+8;
				break;
			}
		}
	}
   	else
	{
		for(i=1;i<hintbox.downStrNums;i++)
		{
			strlen=LoadText(hintbox.downRct_str[i]->strId, hintbox.downRct_str[i]->str, CNSL_HINTBOX_STR_MAXLEN);
			strlen=(strlen-2)/2;
			
			hintbox.downRct_str[i]->strlen=strlen; 

			switch(i)
			{
#if 0
			case 0:
				hintbox.downRct_str[i]->strlen=1;
				hintbox.downRct_str[i]->strWidth=SPECIAL_STR_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=2;
				break;
#endif
			case 1://str
//				hintbox.downRct_str[i]->strlen=strlen; 
				hintbox.downRct_str[i]->strWidth=GetTextWidth(hintbox.downRct_str[i]->str,-1,hintbox.downRct_str[i]->strFormat)+2;//strlen*HINT_FONT_DEFAUT_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[0]->UpL_xoff+SPECIAL_STR_WIDTH;
				break;
			case 2:
//				hintbox.downRct_str[i]->strlen=strlen;
				hintbox.downRct_str[i]->strWidth=SPECIAL_STR_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[1]->UpL_xoff+hintbox.downRct_str[1]->strWidth+3;
				break;
			case 3://str
//				hintbox.downRct_str[i]->strlen=strlen; 
				hintbox.downRct_str[i]->strWidth=GetTextWidth(hintbox.downRct_str[i]->str,-1,hintbox.downRct_str[i]->strFormat)+2;//strlen*HINT_FONT_DEFAUT_WIDTH;
				hintbox.downRct_str[i]->UpL_xoff=hintbox.downRct_str[2]->UpL_xoff+SPECIAL_STR_WIDTH+8;
				break;
			}
		}
	}	
}

/*----------------------------------------------------------------------------
 * Function name: ShowHintBox
 * Arguments:	   HDC hdc, BYTE bselectitem
 * Return value:   None
 * Remark:		show console hint box.
 	comment by chena:
 		bselectitem : ID of item
 *----------------------------------------------------------------------------*/
void ShowHintBox(HDC hdc, BYTE bselectitem)
{
	SetHintBoxInfo( bselectitem);
	DrawHintBox(hdc,&hintbox);
}
int GetMenuHeight()
{
	int i;
	BYTE j;
	i = 0;
	for(j=0;j<menu_count;j++){
		i += menus[j].baseRect.rect.bottom - menus[j].baseRect.rect.top;
		i += 3;
	}

	return i;
}
//draw console menu background
void DrawConsoleMenuBk(HDC hdc)
{
	RECT rectBg;
	WORD bottom;

	bottom = CNSL_BOX_UPPERTOP+GetMenuHeight();
	
	SetRect( &rectBg, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP-2, CNSL_BOX_UPPERLEFT+CNSL_BOX_WIDTH+8, bottom);
	GUI_CreateButtonControl2(hdc, &rectBg, GetColorInDef256Palette(CNSL_BLOCK_BKCOLOR), GetColorInDef256Palette(CNSL_BLOCK_FRCOLOR), GetColorInDef256Palette(CNSL_BLOCK_EDCOLOR), CL_BKNOCARE, "", NORMAL_STRING, 0, 0);
}
void DrawMenuLine(HDC hdc,int y)//height is 2
{
	RECT TempRect;
	COLORREF clWrite=g_DDI_16_DefPalette[Map256To16[CNSL_BOX_WHCOLOR]];//GetColorInDef256Palette(CNSL_BOX_WHCOLOR);
	TempRect.left=CNSL_BOX_UPPERLEFT;
	TempRect.top=y;
	TempRect.right=CNSL_BOX_UPPERLEFT+CNSL_BOX_WIDTH;
	TempRect.bottom=y+2;
	GUI_CreateButtonControl(hdc,&TempRect,clWrite,clWrite,clWrite,0 ,"",UNICODE_STRING, 0, 0);
}
void DrawConsleMenu(HDC hdc,BYTE bcurItem)
{
	int i;

	consoleAudioItem.curLine = 1;
#if 0

	if((DiscType==C_DVD)||(DiscType==C_DVD_VR)){
		bottom = CNSL_BOX_UPPERTOP+6*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH;
	}
	else{
		bottom = CNSL_BOX_UPPERTOP+4*(CNSL_BOX_HIGH+3);
	}
	SetRect( &rectBg, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP-2, CNSL_BOX_UPPERLEFT+CNSL_BOX_WIDTH+8, bottom);
	GUI_CreateButtonControl2(hdc, &rectBg, GetColorInDef256Palette(CNSL_BLOCK_BKCOLOR), GetColorInDef256Palette(CNSL_BLOCK_FRCOLOR), GetColorInDef256Palette(CNSL_BLOCK_EDCOLOR), CL_BKNOCARE, "", NORMAL_STRING, 0, 0);
#endif
	//background
	DrawConsoleMenuBk(hdc);

	{
	//for each menu item
	for(i=0;i<menu_count;i++){
		ShowConsleItem(hdc,cnsl_item_id(i));

		//draw a line
		if(i != menu_count-1){
			DrawMenuLine(hdc, menus[i].baseRect.rect.bottom);
		}
	}
	}
	//for current selection
	if(bcurItem < menu_count && menus[bcurItem].status!=MENU_DISABLE && menu_count != 1){//如果只有一项,则不显示帮助信息
		ShowHintBox(hdc,cnsl_item_id(bcurItem));
		CONSOLEHighLightItem(hdc,bcurItem,TRUE);
	}
}
#if 0
void DrawHintBox(HDC hdc,lpHintBox hBox)
{
 RECT strRec,rectup,rectdown;
 int  left,right,top,bottom,i;
 BYTE width;
 BYTE str[CNSL_HINTBOX_STR_MAXLEN];
    COLORREF clBack;
    COLORREF clText;
    COLORREF clHintBack;
    COLORREF clUpBack;
    COLORREF clHintFr;
    COLORREF clHintEd;
    COLORREF clHintTt;
     
 HDC hMemDC;
 HBITMAP hOldBmp;
   
    clBack=CL_BKNOCARE;
    clText=GetColorInDef256Palette(CNSL_HINT_TXETCOLOR);
    clHintBack=GetColorInDef256Palette(CNSL_BOX_BKCOLOR);
    clUpBack=GetColorInDef256Palette(CNSL_HINT_UPBACK);
    clHintFr=GetColorInDef256Palette(CNSL_HINT_FRONT);
 clHintEd=GetColorInDef256Palette(CNSL_HINT_EDGE);
 clHintTt=GetColorInDef256Palette(CNSL_HINT_TITLE);
 //draw the back
    SetRect(&rectup, 0, 0, CNSL_BOX_WIDTH+17, CNSL_HINTUP_BAR_HIGH);
    hMemDC=InitMemoryDC(hdc, CNSL_BOX_WIDTH+17, CNSL_HINTUP_BAR_HIGH, &hOldBmp);
 GUI_CreateButtonControl2(hMemDC, &rectup, clUpBack, clHintFr, clHintEd, clText, "", NORMAL_STRING, 0, 0);
 //draw the title
 LoadText((UINT)hBox->upRct_str->strId,str,CNSL_HINTBOX_STR_MAXLEN);
 rectup.left+=CNSL_HINT_OFFSET;
 GUI_CreateButtonControl2(hMemDC,&rectup,clBack, clBack,clBack, clHintTt,str, UNICODE_STRING, DT_LEFT, 10);
 rectup.left=CNSL_HINTUP_BAR_LEFT;

  if((DiscType==C_DVD)||(DiscType==C_DVD_VR))
         {
    BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP+6*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH-1, CNSL_BOX_WIDTH+16, CNSL_HINTUP_BAR_HIGH, hMemDC, 1,0,SRCCOPY);              
   }
  else
   {
          BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP+4*(CNSL_BOX_HIGH+3)-2, CNSL_BOX_WIDTH+16, CNSL_HINTUP_BAR_HIGH, hMemDC, 1,0,SRCCOPY);              
   }
 //modified by Joey
    //BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP+6*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH-1, CNSL_BOX_WIDTH+16, CNSL_HINTUP_BAR_HIGH, hMemDC, 1,0,SRCCOPY);
    DelMemoryDC(hMemDC, hOldBmp);
 
    SetRect(&rectdown, CNSL_BOX_UPPERLEFT-8, CNSL_HINTDOWN_BAR_TOP, CNSL_BOX_UPPERLEFT-8+CNSL_HINTDOWN_BAR_WIDTH,CNSL_HINTDOWN_BAR_TOP+CNSL_HINTDOWN_BAR_HIGH);
    //hMemDC=InitMemoryDC(hdc, CNSL_HINTDOWN_BAR_WIDTH, CNSL_HINTDOWN_BAR_HIGH, &hOldBmp);
 GUI_CreateButtonControl2(hdc, &rectdown, clHintBack, clHintFr, clHintEd, clText, "", NORMAL_STRING, 0, 0);

      for(i=0;i<hBox->downStrNums;i++)
      {
        left=rectdown.left+hBox->downRct_str[i]->UpL_xoff+CNSL_HINT_OFFSET+6;
        top= rectdown.top;
        right= left+hBox->downRct_str[i]->strWidth;
        bottom=rectdown.bottom;
        SetRect(&strRec, left, top, right, bottom);
  GUI_CreateButtonControl2(hdc,&strRec,clBack, clBack,clBack, clText, hBox->downRct_str[i]->str, UNICODE_STRING, DT_LEFT, 0);
  }
 

    //BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_HINTDOWN_BAR_TOP, CNSL_HINTDOWN_BAR_WIDTH, CNSL_HINTDOWN_BAR_HIGH, hMemDC, 1,0,SRCCOPY);
    //DelMemoryDC(hMemDC, hOldBmp);

}

#else
void DrawHintBox(HDC hdc,lpHintBox hBox)
{
	RECT strRec,rectup,rectdown;
	int  left,right,top,bottom,i;
	BYTE width;
	BYTE str[CNSL_HINTBOX_STR_MAXLEN];
	COLORREF clBack;
	COLORREF clText;
	COLORREF clHintBack;
	COLORREF clUpBack;
	COLORREF clHintFr;
	COLORREF clHintEd;
	COLORREF clHintTt;
		
	HDC hMemDC;
	HBITMAP hOldBmp;
   
	clBack=CL_BKNOCARE;
	clText=g_DDI_16_DefPalette[Map256To16[CNSL_HINT_TXETCOLOR]];//GetColorInDef256Palette(CNSL_HINT_TXETCOLOR);//236
	clHintBack=g_DDI_16_DefPalette[Map256To16[CNSL_BOX_BKCOLOR]];//GetColorInDef256Palette(CNSL_BOX_BKCOLOR);
	clUpBack=g_DDI_16_DefPalette[Map256To16[CNSL_HINT_UPBACK]];//GetColorInDef256Palette(CNSL_HINT_UPBACK);
	clHintFr=g_DDI_16_DefPalette[Map256To16[CNSL_HINT_FRONT]];//GetColorInDef256Palette(CNSL_HINT_FRONT);
	clHintEd=g_DDI_16_DefPalette[Map256To16[CNSL_HINT_EDGE]];//GetColorInDef256Palette(CNSL_HINT_EDGE);
	clHintTt=g_DDI_16_DefPalette[Map256To16[CNSL_HINT_TITLE]];//GetColorInDef256Palette(CNSL_HINT_TITLE);
	//draw the back
	SetRect(&rectup, 0, 0, CNSL_BOX_WIDTH+17, CNSL_HINTUP_BAR_HIGH);
	hMemDC=InitMemoryDC(hdc, CNSL_BOX_WIDTH+17, CNSL_HINTUP_BAR_HIGH, &hOldBmp);
	GUI_CreateButtonControl2(hMemDC, &rectup, clUpBack, clHintFr, clHintEd, clText, "", NORMAL_STRING, 0, 0);
	//draw the title
	LoadText((UINT)hBox->upRct_str->strId,str,CNSL_HINTBOX_STR_MAXLEN);
	rectup.left+=CNSL_HINT_OFFSET;
	GUI_CreateButtonControl2(hMemDC,&rectup,clBack, clBack,clBack, clHintTt,str, UNICODE_STRING, DT_LEFT, 10);
	rectup.left=CNSL_HINTUP_BAR_LEFT;

	/*
	if(DiscType == C_DVD || DiscType == DVD_VR){
		BitBlt(.......);
	}
	else{
		if(DiscType == C_FILEOPENDISC){
			BitBlt(......);
		}
		else{
			BitBlt(......);
		}
	}
	*/
#if 0
	switch(DiscType){
		case C_DVD:
		case C_DVD_VR:
			i = CNSL_BOX_UPPERTOP+6*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH-1;break;
//		case C_FILEOPENDISC://not support
//			i = CNSL_BOX_UPPERTOP+4*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH-1;break;
		default:
			i = CNSL_BOX_UPPERTOP+4*(CNSL_BOX_HIGH+3)-2;break;
	}
#else
	i = CNSL_BOX_UPPERTOP + GetMenuHeight();
#endif
	BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, i, CNSL_BOX_WIDTH+16, CNSL_HINTUP_BAR_HIGH, hMemDC, 1,0,SRCCOPY);					

	//modified by Joey
	//BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_BOX_UPPERTOP+6*(CNSL_BOX_HIGH+3)+CNSL_BOX_AUDIO_HIGH-1, CNSL_BOX_WIDTH+16, CNSL_HINTUP_BAR_HIGH, hMemDC, 1,0,SRCCOPY);
	DelMemoryDC(hMemDC, hOldBmp);

#if 1
	//draw down-rect directly
	SetRect(&rectdown, CNSL_BOX_UPPERLEFT-8, CNSL_HINTDOWN_BAR_TOP, CNSL_BOX_UPPERLEFT-8+CNSL_HINTDOWN_BAR_WIDTH,CNSL_HINTDOWN_BAR_TOP+CNSL_HINTDOWN_BAR_HIGH);
 	GUI_CreateButtonControl2(hdc, &rectdown, clHintBack, clHintFr, clHintEd, clText, "", NORMAL_STRING, 0, 0);

	for(i=0;i<hBox->downStrNums;i++)
	{
		left=rectdown.left+hBox->downRct_str[i]->UpL_xoff+CNSL_HINT_OFFSET+6;
		top= rectdown.top;
		right= left+hBox->downRct_str[i]->strWidth;
		bottom=rectdown.bottom;
		SetRect(&strRec, left, top, right, bottom);
		GUI_CreateButtonControl2(hdc,&strRec,clBack, clBack,clBack, clText, hBox->downRct_str[i]->str, UNICODE_STRING, DT_LEFT, 0);
	}
#else
	SetRect(&rectdown, 0, 0, CNSL_HINTDOWN_BAR_WIDTH,CNSL_HINTDOWN_BAR_HIGH);
	hMemDC=InitMemoryDC(hdc, CNSL_HINTDOWN_BAR_WIDTH, CNSL_HINTDOWN_BAR_HIGH, &hOldBmp);
	GUI_CreateButtonControl2(hMemDC, &rectdown, clHintBack, clHintFr, clHintEd, clText, "", NORMAL_STRING, 0, 0);

	for(i=0;i<hBox->downStrNums;i++)
	{
		left=rectdown.left+hBox->downRct_str[i]->UpL_xoff+CNSL_HINT_OFFSET+6;
		top= rectdown.top;
		right= left+hBox->downRct_str[i]->strWidth;
		bottom=rectdown.bottom;
		SetRect(&strRec, left, top, right, bottom);
		GUI_CreateButtonControl2(hMemDC,&strRec,clBack, clBack,clBack, clText, hBox->downRct_str[i]->str, UNICODE_STRING, DT_LEFT, 0);
	}
	

	BitBlt(hdc, CNSL_BOX_UPPERLEFT-8, CNSL_HINTDOWN_BAR_TOP, CNSL_HINTDOWN_BAR_WIDTH, CNSL_HINTDOWN_BAR_HIGH, hMemDC, 1,0,SRCCOPY);
	DelMemoryDC(hMemDC, hOldBmp);
#endif
}
#endif
/*----------------------------------------------------------------------------
 * Function name: DrawMultiLineCSItem
 * Arguments:	  HDC hdc,lpMLineConsItem lpMItem 
 * Return value:   actually no
 * Remark:		Draw a mulity line console item with memory dc;
 *----------------------------------------------------------------------------*/
BOOL DrawMultiLineCSItem(HDC hdc,lpMLineConsItem lpMItem)
{
	WORD height;
	RECT tempRect,totalRect;
	int i;
	BYTE l_arr[]={0xe0,0x10,0x00,0x00};
	BYTE r_arr[]={0xe0,0x11,0x00,0x00};
	COLORREF clBack;
	COLORREF clText;
	COLORREF clHighLight;
	COLORREF clWrite;
	HDC hMemDC;
	HBITMAP hOldBmp;

	clBack=g_DDI_16_DefPalette[Map256To16[CNSL_BOX_BKCOLOR]];//GetColorInDef256Palette(CNSL_BOX_BKCOLOR);
	clText=GetColorInDef256Palette(lpMItem->lpbaseRect->strColor);
	clHighLight=g_DDI_16_DefPalette[Map256To16[CNSL_BOX_HLCOLOR]];//GetColorInDef256Palette(CNSL_BOX_HLCOLOR);
	clWrite=g_DDI_16_DefPalette[Map256To16[CNSL_BOX_WHCOLOR]];//GetColorInDef256Palette(CNSL_BOX_WHCOLOR);

	//not support single line, 3 lines, or more ?
	if(lpMItem->lineCount ==1)
	{
		return TRUE;
	}
	if(lpMItem->lineCount>3)
	{
		return FALSE;
	}
	

	//count the height of the item and change the lpbaseRect
	//height = MLCSI_TXT_TOP_MG + lpMItem->lineCount * MLCSI_TXT_HEIGHT +(lpMItem->lineCount - 1) * MLCSI_TXT_INTERVAL + MLCSI_TXT_BOT_MG;
	height=CNSL_BOX_AUDIO_HIGH;
	lpMItem ->lpbaseRect->rect.bottom = lpMItem ->lpbaseRect->rect.top + height;
	lpMItem ->lpbaseRect->rect.right = lpMItem ->lpbaseRect->rect.left + CNSL_BOX_WIDTH;

	totalRect.left = lpMItem->lpbaseRect->rect.left;
	totalRect.top = lpMItem->lpbaseRect->rect.top;
	totalRect.bottom = lpMItem->lpbaseRect->rect.bottom;
	totalRect.right = lpMItem->lpbaseRect->rect.right;

	hMemDC=InitMemoryDC(hdc, totalRect.right-totalRect.left, totalRect.bottom-totalRect.top, &hOldBmp);
	tempRect.left = 0;
	tempRect.top = 0;
	tempRect.bottom = totalRect.bottom-totalRect.top;
	tempRect.right = totalRect.right-totalRect.left;
	if(lpMItem ->lpbaseRect->bkColor==CNSL_BOX_BACKCOLOR_HIGHLIGHT)
	{
//		GUI_CreateLeftMidRightBitmap2(hMemDC, &tempRect, IM_NMPLR_SELECT_AUDIO_BOX_MIDDLE,IM_NMPLR_SELECT_AUDIO_BOX_MIDDLE,IM_NMPLR_SELECT_AUDIO_BOX_MIDDLE,TRUE);
		GUI_CreateButtonControl2(hMemDC, &tempRect, clHighLight, clHighLight, clHighLight, clText, "", NORMAL_STRING, 0, 0);
	}
	else
	{
		GUI_CreateButtonControl2(hMemDC, &tempRect, clBack, clBack, clBack, clText, "", NORMAL_STRING, 0, 0);
	}

	//count the bmp position
	lpMItem->lpbaseBmp->upperlefty = (height - lpMItem->lpbaseBmp->height)/2+lpMItem->lpbaseRect->rect.top;
	lpMItem->lpbaseBmp->upperleftx = lpMItem->lpbaseRect->rect.left + MLCSI_BMP_LMG;

	tempRect.left = lpMItem->lpbaseBmp->upperleftx-totalRect.left;
	tempRect.top = lpMItem->lpbaseBmp->upperlefty-totalRect.top;
	tempRect.bottom = tempRect.top+lpMItem->lpbaseBmp->height;
	tempRect.right = tempRect.left+lpMItem->lpbaseBmp->width;
	GUI_CreateBitmapControl2(hMemDC,&tempRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, (UINT)lpMItem->lpbaseBmp->lpBitmapName, 0, 0);

	//Write the String.
	SetASCFontStyle(ASC_BIG_STYLE);// SetASCFontStyle(ASC_SMALL_STYLE); bond modify 031011
	for(i=0;i<lpMItem->lineCount;i++)
	{
		//count rect
		tempRect.left = lpMItem->lpbaseRect->rect.left + MLCSI_TXT_LEFT-totalRect.left;
		tempRect.top = lpMItem->lpbaseRect->rect.top + MLCSI_TXT_TOP_MG +
					   i*(MLCSI_TXT_HEIGHT+MLCSI_TXT_INTERVAL)-totalRect.top;
		tempRect.bottom = tempRect.top + MLCSI_TXT_HEIGHT;
		tempRect.right = lpMItem->lpbaseRect->rect.right -MLCSI_TXT_RIGHT_MG-totalRect.left;

		GUI_CreateButtonControl2(hMemDC,&tempRect,CL_BKNOCARE,CL_BKNOCARE,CL_BKNOCARE, clText,lpMItem->lpString[i],UNICODE_STRING, 0, 0);
	}
	SetASCFontStyle(ASC_NORMAL_STYLE);

	if(lpMItem->curLine!=0)
	{
		//i = lpMItem->curLine-1;
		i = lpMItem->curLine;//for put the arrow middle

		//the L arrow
		tempRect.left = lpMItem->lpbaseRect->rect.left + MLCSI_ARROW_LEFT-totalRect.left;
		tempRect.top = lpMItem->lpbaseRect->rect.top + MLCSI_TXT_TOP_MG +
					   i*(MLCSI_TXT_HEIGHT+MLCSI_TXT_INTERVAL)-totalRect.top;
		tempRect.bottom = tempRect.top + MLCSI_TXT_HEIGHT;
		tempRect.right = tempRect.left + MLCSI_ARROW_WIDTH;
		GUI_CreateButtonControl2(hMemDC,&tempRect,CL_BKNOCARE,CL_BKNOCARE,CL_BKNOCARE, clText,l_arr,UNICODE_STRING, 0, 0);
		//the R arrow
		OffsetRect(&tempRect, MLCSI_ARROW_INTERVAL, 0);
		GUI_CreateButtonControl2(hMemDC,&tempRect,CL_BKNOCARE,CL_BKNOCARE,CL_BKNOCARE, clText,r_arr,UNICODE_STRING, 0, 0);
	}

	BitBlt(hdc, totalRect.left, totalRect.top, totalRect.right-totalRect.left, totalRect.bottom-totalRect.top, hMemDC, 1,0,SRCCOPY);
	DelMemoryDC(hMemDC, hOldBmp);
	
	tempRect.left=totalRect.left;
	tempRect.top=totalRect.bottom+1;
	tempRect.right=totalRect.right-2;
	tempRect.bottom=totalRect.bottom+3;
	GUI_CreateButtonControl(hdc,&tempRect,clWrite,clWrite,clWrite,clText ,"",UNICODE_STRING, 0, 0);
}

void Set3DSurStatus(BYTE status)
{
	cursound=status;		
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -