我正在爲我的菜單編寫GUI。問題是這樣的,當我訪問DrawText函數是越來越只顯示我的sub_menu字符數組的第一個元素,當我訪問使用無法訪問陣列結構的所有元素
drawText(38,195,*a->sub_Menu[1],0);
drawText(38,240, a->sub_Menu[2],0);
drawText(38,285, a->sub_Menu[3],0);
drawText(38,330, a->sub_Menu[4],0);
和休息的框顯示空白的作用。 ,當我嘗試訪問使用
drawText(38,195,*a->sub_Menu[1],0);
drawText(38,240,*a->sub_Menu[2],0);
drawText(38,285,*a->sub_Menu[3],0);
drawText(38,330,*a->sub_Menu[4],0);
程序編譯和運行,但只要我在我的菜單設置按鈕,單擊該程序崩潰說myprogram.exe已停止工作的DrawText funcion。 我不知道是什麼問題,因爲我是編碼新手。
typedef struct {
short startXPos;
short startYPos;
short height;
short width;
unsigned int c;
char *sub_Menu[5][18];
} menu, *ptr_Menu;
ptr_Menu a;
char sub_Menu1[5][18] = {"Big Font", "5 channel", "7 channel", "12 channel", "Alarm"};
menu touch_menu[10] = {30, 365, 45, 100, 5, &sub_Menu1};
void drawMenu(short b)
{
int k = 0;
if (b == 0) {
a = &touch_menu[0];
for (k=0; k<a->c; k++) {
setColor(GREY);
drawRectangle(a->startXPos, a->startYPos - (k+1)*a->height,a->width,a->height);
}
setColor(CYAN);
drawText(38,150,*a->sub_Menu[0],0);
drawText(38,195,*a->sub_Menu[1],0);
drawText(38,240,*a->sub_Menu[2],0);
drawText(38,285,*a->sub_Menu[3],0);
drawText(38,330,*a->sub_Menu[4],0);
}
}
請使用標題作爲簡短說明。除了你的代碼,你的問題缺乏一切。添加一個文本,你想要做什麼,你嘗試了什麼,以及你得到什麼樣的編譯器錯誤或不當行爲。任何「請幫助我」是不受歡迎的。 – usr1234567
@ atul329,你欠我一杯可讀的縮進啤酒。 :-) – SzG