如我定义了一个数组:
static char * _Table_1[][3] = {
{ "工作方式", "100", "Item AAA" },
{ "50", "100", "Item BBB" },
};
现在我想把其中的100改成200或是其它的数,怎么才能实现呢?求教能给个直接点的答案吗?菜鸟问了很多次还没解决。谢谢!
static char * _Table_1[][3] = {
{ "工作方式", "100", "Item AAA" },
{ "50", "100", "Item BBB" },
};
现在我想把其中的100改成200或是其它的数,怎么才能实现呢?求教能给个直接点的答案吗?菜鸟问了很多次还没解决。谢谢!
_Table_1[1][1] = "300";如果你想赋变量,那就只能new一个char数组,再填充数据,然后还是向上面一样赋值。
另外,你把常量指定串指针赋给char*,应该有警告。
要这样:static char _Table_1[][64] =
{
"工作方式", "100", "Item AAA",
"50", "100", "Item BBB"
};memcpy(_Table_1[1],"200");
memcpy(_Table_1[4],"200");
如果你定义了int a=200,要先用itoa把a转化为char*,然后在memcpy
*定义LISTVIEW参数设置所需数组
*********************************************************************/
static char * _Table_1[][3] = {
{ "工作方式", "160", "Item AAA" },
{ "50", "100", "Item BBB" },
{ "强磁时间", "110-C", "Item CCC" },
{ "逆变时间", "120-D", "Item DDD" },
{ "消磁时间", "130-E", "Item EEE" },
{ "高温设定", "140-F", "Item FFF" },
{ "777777-7777777", "150-G", "Item GGG" },
{ "888888-8888888", "160-H", "Item HHH" }
};
/*********************************************************************
/*创建参数设置回调
/*********************************************************************/
static void _cbCallback1(WM_MESSAGE* pMsg) {
int i,a,c, Id,NCode, Key, Pressed = 0;//
unsigned char *b;
unsigned char d;
WM_HWIN hDlg,hEdit0, hItem;
// WM_HWIN hWinSrc=pMsg->MsgId;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_INIT_DIALOG://初始化获取控件句柄
hEdit0 = WM_GetDialogItem(hDlg, GUI_ID_EDIT0);
// WM_HasFocus(hEdit0);
EDIT_SetDecMode(hEdit0,0,1,200,0,0);//最小为1最大值为200
// EDIT_SetValue(hEdit0,5);//
EDIT_SetMaxLen(hEdit0,3);//最长三位数
for (i = 0; i < GUI_COUNTOF(_aDialogCreate1) - 1; i++) //所有按键不具备焦点
{
hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + i);
BUTTON_SetFocussable(hItem, 0);
}
break;
case WM_PAINT:
{
GUI_DispStringAt("ggg", 100, 20);//写入最大提示数值
c=atol(_Table_1[0][1]);//需要使用类似方法获得最初数值病放入EDIT控件中-----相当于初始值为10!!!!!
// GUI_DispDecAt(c,100,30,2);//在当前指定位置显示C里的数值
EDIT_SetValue(WM_GetDialogItem (hDlg, WM_GetId (WM__hWinFocus)),c);//通过获取焦点获取ID再获取句柄从而设置当前数值
}
break;
case WM_NOTIFY_PARENT:
NCode = pMsg->Data.v;
Id = WM_GetId(pMsg->hWinSrc);
switch (NCode)
{
case WM_NOTIFICATION_CLICKED:
Pressed = 1;
case WM_NOTIFICATION_RELEASED:
if (Id == GUI_ID_USER +2)/* 是确定键按下删除窗体 */
{
a=EDIT_GetValue(WM_GetDialogItem (hDlg, WM_GetId (WM__hWinFocus)));//通过获取焦点获取ID再获取句柄从而获得窗体数值
*_Table_1[0][1]=a;//-->就是想在这里将a里的真实数值赋给_Table_1[0][1]
WM_DeleteWindow(hDlg);
}
else
{
Key = _aKey[Id - GUI_ID_USER - 3]; /* 数组以0开始,所有ID-3*/
}
GUI_SendKeyMsg(Key, Pressed);
}
break; default:
WM_DefaultProc(pMsg);
}
}
strcpy(pbuf, itoa(a));
_Table_1[0][1]=pbuf;由于你的常量字符串无法修改,所以重新new一个,记得new的需要在适当的时候释放。如果没有itoa,则用sprintf,有些系统没有itoa。
static char * _Table_1[][3] = {
{ "工作方式", "100", "Item AAA" },
{ "50", "100", "Item BBB" },
};
定义错误.必须用结构数组定义.