|
本帖最后由 雅虎9527 于 2019-5-28 15:24 编辑
不知道为什么没法添加图片
大家好,主界面上放了3个按钮,使用的物理按键。光标现在可以在3个按钮键循环移动。现在遇到的问题是:
1、进入主界面后,必须得按一下 “下键”,光标才会在 “测量界面” 这个按钮上,显示出来。我想实现,进入主界面后光标直接就定位在 “测量界面”,请问这个该如何实现?
2、光标在三个按钮上移动时,当光标移动到某一个按钮上时,该按钮上的文字颜色就变为红色,光标移开后,按钮上的文字颜色又恢复成白色,请问这个又该如何实现呢?
下面是我主界面的回调函数
static void _cbMainView(WM_MESSAGE* pMsg)
{
char buf[60];
WM_HWIN hText;
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_CREATE:
WM_SetFocus(hWin);//设置聚焦
_CreateButton(hWin, "测量界面", GUI_ID_BUTTON0, (FRAME_WIDTH >> 1) - 60, 25, 120, 40, 0);
_CreateButton(hWin, "历史查询", GUI_ID_BUTTON1, (FRAME_WIDTH >> 1) - 60, 90, 120, 40, 0);
_CreateButton(hWin, "设置界面", GUI_ID_BUTTON2, (FRAME_WIDTH >> 1) - 60, 155, 120, 40, 0);
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_BACKTAB:
WM_SetFocusOnPrevChild(hWin);
break;
case GUI_KEY_TAB:
WM_SetFocusOnNextChild(hWin);
break;
}
break;
case WM_PAINT://窗口变为无效并应重绘时,发送到窗口
_PaintFrame();//重绘背景
break;
case WM_NOTIFY_PARENT://告知父窗口,其子窗口中发生了某些改变
if (pMsg->Data.v == WM_NOTIFICATION_RELEASED)
{
int Id = WM_GetId(pMsg->hWinSrc);//获取控件ID
switch (Id)
{
case GUI_ID_BUTTON0:
_DeleteFrame();
_CreateFrame(&_cbMeasureView);
break;
case GUI_ID_BUTTON1:
_DeleteFrame();//删除当前窗口
_CreateFrame(&_cbRecordView);
break;
case GUI_ID_BUTTON2:
_DeleteFrame();//删除当前窗口
_CreateFrame(&_cbSetView);
break;
default:break;
}
}
break;
case WM_TIMER: //定时器消息
break;
default:WM_DefaultProc(pMsg);break;
}
}
|
|