|
看了硬汉哥自定义按键教程和官方例子,想在自定义按键上加一个外框,按下弹起有颜色变化,外框一直未显示,请教下无法显示的原因
按键回调函数如下:
static void _cbButton1(WM_MESSAGE *pMsg)
{
GUI_RECT Rect;
switch (pMsg->MsgId) {
case WM_PAINT:
/* 获取客户区坐标 */
WM_GetClientRect(&Rect);
/* 判断按钮是否被按下 */
if (BUTTON_IsPressed(pMsg->hWin)) {
/* 绘制按下状态的按钮图形 */
GUI_SetColor(GUI_GREEN);
GUI_FillRoundedRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 5);
GUI_SetBkColor(GUI_GREEN);
GUI_SetColor(GUI_BLACK);
GUI_DrawRoundedRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 5);
} else {
/* 绘制释放状态的按钮图形 */
GUI_SetColor(GUI_WHITE);
GUI_FillRoundedRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 5);
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_BLACK);
GUI_DrawRoundedRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 5);
}
/* 绘制按钮文本 */
GUI_SetColor(GUI_BLACK);
GUI_SetFont(&GUI_Font20B_ASCII);
GUI_DispStringInRect("Button1", &Rect, GUI_TA_HCENTER |
GUI_TA_VCENTER);
break;
default:
BUTTON_Callback(pMsg);
}
}
|
|