|
如题,比如设置按钮皮肤的回调函数如下:- int BUTTON_DrawSkin(const WIDGET_ITEM_DRAW_INFO* pButtonSkinItem)
- {
- const GUI_POINT aPoint[] = {{15, 20}, {30, 20},{30, 10}};
- const GUI_POINT bPoint[] = {{15, 40}, {30, 40},{30, 50}};
- switch (pButtonSkinItem->Cmd)
- {
- case WIDGET_ITEM_DRAW_BACKGROUND:
- {
- if (BUTTON_IsPressed(pButtonSkinItem->hWin) == 0)
- {
- GUI_SetColor(SkinColor[ColorIndex].Color2);
- GUI_AA_FillCircle(pButtonSkinItem->x1*0.5, pButtonSkinItem->y1*0.5, (pButtonSkinItem->x1 - pButtonSkinItem->x0)*0.5);
- GUI_SetColor(SkinColor[ColorIndex].Color5);
- GUI_FillRect(5, 20, 12, 40);
- GUI_FillRect(15, 20, 30, 40);
- GUI_FillPolygon(aPoint, 3, 0, 0);
- GUI_FillPolygon(bPoint, 3, 0, 0);
-
- GUI_SetColor(SkinColor[ColorIndex].Color5);
- GUI_SetPenSize(3);
- GUI_AA_DrawLine(37, 24, 50, 36); //¡á
- GUI_AA_DrawLine(50, 24, 37, 36); //¡á
-
- GUI_AA_DrawArc(25, 30, 14, 25, 320, 400); //|
- GUI_AA_DrawArc(25, 30, 22, 25, 320, 400); //|
- }
- else
- {
- GUI_SetColor(SkinColor[ColorIndex].Color3);
- }
- break;
- }
- default:
- {
- return BUTTON_DrawSkinFlex(pButtonSkinItem);
- }
- }
- return 0;
- }
复制代码 但是这个函数只能设置一种皮肤的款式。
所以想问一下:
是否可以只用一个BUTTON_DrawSkin的函数就设置多个不同按钮的不同皮肤(举个例子:按钮1的皮肤和按钮2的皮肤不同,它们的皮肤都可以在函数1中完成,函数1中有某种机制可以区分出按钮1和按钮2)
还是需要用多个设置按钮皮肤的函数才能实现多个按钮设置不同皮肤?(举个例子:按钮1的皮肤要用函数1单独设置,按钮2的皮肤要用函数2单独设置......)
|
|