📄 consoleoutlook.c
字号:
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 + -