|
我写了一段代码如下:
static void _cbBkChildWindos(WM_MESSAGE * pMsg)
{
WM_HWIN hDlg;
uint8_t i;
uint16_t EditX,EditY,EditX_Size,EditY_Size;
int NCode;
int Id;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_LIGHTSKYBLUE);
GUI_Clear();
_cbSetMeasureDispFrameMain(hDlg);
break;
case WM_CREATE:
/*°′¼ü*/
SetMea.hButton[4] = BUTTON_CreateEx(Button0_X,Button0_Y,Button0_X_Size,Button0_Y_Size,pMsg->hWin, WM_CF_SHOW,0,GUI_ID_USER_BUTTON4);
BUTTON_SetText(SetMea.hButton[4],"Ñ¡Ôñ");
SetMea.hButton[5] = BUTTON_CreateEx(Button1_X,Button1_Y,Button1_X_Size,Button1_Y_Size,pMsg->hWin, WM_CF_SHOW,0,GUI_ID_USER_BUTTON5);
BUTTON_SetText(SetMea.hButton[5],"±à¼-");
SetMea.hButton[6] = BUTTON_CreateEx(Button2_X,Button2_Y,Button2_X_Size,Button2_Y_Size,pMsg->hWin, WM_CF_SHOW,0,GUI_ID_USER_BUTTON6);
BUTTON_SetText(SetMea.hButton[6],"éÏμ÷");
SetMea.hButton[7] = BUTTON_CreateEx(Button3_X,Button3_Y,Button3_X_Size,Button3_Y_Size,pMsg->hWin, WM_CF_SHOW,0,GUI_ID_USER_BUTTON7);
BUTTON_SetText(SetMea.hButton[7],"ÏÂμ÷");
/*ÏÂà-áD±í¿ò*/
SetMea.hDropDown[0] = DROPDOWN_CreateEx(20 + RectLength/2 - 150/2,40 + 1,150,28,pMsg->hWin,WM_CF_SHOW,DROPDOWN_CF_AUTOSCROLLBAR,GUI_ID_USER_DROPDOWN0);
DROPDOWN_SetFont(SetMea.hDropDown[0],&GUI_FontHZSongti24);
for(i=0;i<10;i++)
DROPDOWN_AddString(SetMea.hDropDown[0],MeasureName);
DROPDOWN_SetTextAlign(SetMea.hDropDown[0],TEXT_CF_HCENTER|TEXT_CF_VCENTER);
for(i=0;i<3;i++)
SetMea.hDropDown[1+i] = DROPDOWN_CreateEx(160,310 + 30*i,80,35,pMsg->hWin,WM_CF_SHOW,DROPDOWN_CF_AUTOSCROLLBAR,GUI_ID_USER_DROPDOWN1+i);
/*Îı¾¿ò*/
for(i=0;i<8;i++){
switch(i){
case 0:
EditX = 100;
EditY = 85;
EditX_Size = 80;
EditY_Size = 17;
break;
case 1:
EditX = 200;
EditY = 107;
EditX_Size = 80;
EditY_Size = 17;
break;
case 2:
EditX = 300;
EditY = 185;
EditX_Size = 80;
EditY_Size = 17;
break;
case 3:
EditX = 400;
EditY = 207;
EditX_Size = 80;
EditY_Size = 17;
break;
case 4:
EditX = 160;
EditY = 250;
EditX_Size = 80;
EditY_Size = 17;
break;
case 5:
EditX = 160;
EditY = 280;
EditX_Size = 80;
EditY_Size = 17;
break;
case 6:
EditX = 360;
EditY = 250;
EditX_Size = 100;
EditY_Size = 17;
break;
case 7:
EditX = 360;
EditY = 280;
EditX_Size = 100;
EditY_Size = 17;
break;
}
SetMea.hEdit = EDIT_CreateEx(EditX,EditY,EditX_Size,EditY_Size,pMsg->hWin,WM_CF_SHOW,0,GUI_ID_USER_EDIT0+i,6);
WIDGET_SetEffect(SetMea.hEdit,&WIDGET_Effect_None);
EDIT_SetFloatMode(SetMea.hEdit,0,-5,5,3,GUI_EDIT_SIGNED);
}
EDIT_SetFloatValue(SetMea.hEdit[0],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].MinTolValue);
EDIT_SetFloatValue(SetMea.hEdit[1],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].MinWarningValue);
EDIT_SetFloatValue(SetMea.hEdit[2],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].MaxWarningValue);
EDIT_SetFloatValue(SetMea.hEdit[3],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].MaxTolValue);
EDIT_SetFloatValue(SetMea.hEdit[4],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].StaOffsetValue);
EDIT_SetFloatValue(SetMea.hEdit[5],MeasureDispFrame.Measure[Me2.MeasureListNum - 1].NominalValue);
break;
case WM_KEY:
switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key){
case KEYFUC_ESC:
MeasureFrame.DispSetFlag = 0;
WM_SetFocus(WM_GetParent(pMsg->hWin));
WM_DeleteWindow(pMsg->hWin);
break;
}
break;
case WM_TIMER:
WM_RestartTimer(pMsg->Data.v,10);
WM_InvalidateWindow(pMsg->hWin);
break;
default:
WM_DefaultProc(pMsg);
}
}
预想的效果应该是下拉栏、按键、编辑小工具都是一起刷新出来的,但实际效果是编辑小工具首先出现在屏幕上,然后其他的才刷新出来,搞不清楚是怎么回事,请大神帮忙看看,谢谢 |
|