初级会员
- 积分
- 61
- 金钱
- 61
- 注册时间
- 2017-5-3
- 在线时间
- 13 小时
|
1金钱
我新建了一个控件如下图,希望点击Search按钮时,将EDIT控件中输入的字符串(如P001)在分隔线下显示出来,为什么读不出来EDIT控件的输入值啊?
初学STemWin,求各位大神指导。
我是在该对话框的回调函数中执行该步骤的(黄底色部分),回调函数如下:
static void _cbDialog_query(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode;
int Id;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
// Initialization of 'DTC Code'
hItem = pMsg->hWin;
FRAMEWIN_SetTitleHeight(hItem, 20);
FRAMEWIN_SetFont(hItem, GUI_FONT_16B_ASCII);
FRAMEWIN_AddCloseButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0); //为框架添加关闭按钮
FRAMEWIN_SetClientColor(hItem, GUI_WHITE); //设置背景色为白色
// Initialization of 'Input DTC Code:'
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
TEXT_SetFont(hItem, GUI_FONT_13B_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
// Initialization of 'Edit'
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
EDIT_SetText(hItem, "");
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id) {
case ID_EDIT_0: // Notifications sent by 'Edit'
switch (NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0); //获取edit控件的句柄
EDIT_GetText(hItem, DTC_Code, 5); //读取edit控件输入值,存入DTC_Code数组中,之前已定义
break;
}
break;
case ID_BUTTON_0: // Notifications sent by 'Search'
switch (NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
}
break;
}
break;
case WM_PAINT:
//画分割线
GUI_SetBkColor(GUI_BLACK);
GUI_ClearRect(0, 25, 320, 28);
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_BLACK);
GUI_SetFont(&GUI_Font16B_ASCII);
GUI_DispStringInRectWrap(DTC_Code, &DTC_RECT, GUI_TA_TOP | GUI_TA_LEFT, GUI_WRAPMODE_WORD); //将输入的值在分隔线下方显示出来。
default:
WM_DefaultProc(pMsg);
break;
}
}
|
最佳答案
查看完整内容[请看2#楼]
不要在case WM_PAINT:中显示
直接在你的第一栏黄色标注下试试
或者在第一个黄色下加个无效化区域
好长时间没看了
有些生疏
|