搜索
bottom↓
回复: 103

在nokia5110上做的一个列表选择型菜单,通过参数选择,支持无限长的列表,有滚动条

[复制链接]

出0入0汤圆

发表于 2008-5-2 02:16:42 | 显示全部楼层 |阅读模式
在nokia5110上做的一个列表选择型菜单,
通过参数选择,
支持无限长的列表,
有滚动条,但是滚动条的长度有限制,滚动条向下一次移动一个像素点时,支持22行。

照片不给说我骗人呢!!


(原文件名:1.jpg)
这个是菜单的初始位置,当我按了下翻时,右边的滚动条就向下移动一定的距离,距离是根据菜单的数量计算出来的,公式是(滚动条所能移动的范围减滚动条黑方块的高度除以菜单长度),由于往往不能整除, 所以要手动调整,下面是移动到第10个菜单项的时候:

(原文件名:2.jpg)
左边黑色圆圈是表示当前定位到的菜单行,每按下一次下翻键时黑圈下移一行,当已经是第二行再按下翻,黑圈到第一行同时就显示新的列表内容。

(原文件名:3.jpg)
当按下确定键时,反白定位到的这行菜单项,同时程序里可以通过查 指向函数的指针数组 的表 ,去执行相应的程序。(本程序没写要执行的函数,程序里的指向函数的指针数组是用来执行显示菜单名用的)

(原文件名:4.jpg)
这个是最后一个菜单,第二行的空白是为了让测试当菜单数量为单数时,程序能在下面本来没有菜单项的地方填一个空白。

看看效果,程序见1楼

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2008-5-2 02:24:15 | 显示全部楼层
程序:

#include"5110LCD.h"
#include"english_6x8.h"
#include"chinese.h"

#define menuNum 21         //子菜单数

#define flagPoint_X 4     //指示圆的X坐标
#define flagPoint_Y 19    //指示圆的起始Y坐标
#define flagPointAdd 14   //指示圆Y坐标步进

#define scroll_X 70       //滚动条的X坐标
#define scroll_Height 7   //滚动条的高度
#define scroll_Y 18       //滚动条的起始Y坐标
#define scrollEnd_Y 44    //滚动条的终止Y坐标
#define scrollAdd ((scrollEnd_Y - scroll_Height - scroll_Y + 1) / (menuNum - 1))  //滚动条步进,这里由于不能整除,所以要手动调整

#define menu_Y1 19        //菜单位置1
#define menu_Y2 33        //菜单位置2

unsigned char scrollLocation = 0;
void(*nemuListTable[][2])(unsigned char)=
{
    &menuList1,&menuList2,
    &menuList3,&menuList4,
    &menuList5,&menuList6,
    &menuList7,&menuList8,
    &menuList9,&menuList10,
    &menuList11,&menuList12,
    &menuList13,&menuList14,
    &menuList15,&menuList16,
    &menuList17,&menuList18,
    &menuList19,&menuList20,
    &menuList21,&menuList22
};

void mainDraw(void)
{
    DrawRectangleLine(0,0,83,47,1);
    DrawRectangleLine(2,17,67,45,1);
    DrawRectangleLine(69,17,81,45,1);
    DrawLine(1,15,82,15);
    DrawGraphics(Hzk[0],12,12,17,2);
    DrawGraphics(Hzk[1],12,12,29,2);
    DrawGraphics(Hzk[2],12,12,41,2);
    DrawGraphics(Hzk[3],12,12,53,2);
    menuList1(menu_Y1);
    menuList2(menu_Y2);
    DrawArea(scroll_X,scroll_Y,12,scroll_Height);
    DrawGraphics(Hzk[5],12,12,flagPoint_X,flagPoint_Y);
}

void menuList1(unsigned char nenu_Y)//子菜单,因为以后使用中内容可能不同,所以下面的菜单名重写了
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
}
void menuList2(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[18],6,8,52,nenu_Y + 4);
}
void menuList3(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[19],6,8,52,nenu_Y + 4);
}
void menuList4(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[20],6,8,52,nenu_Y + 4);
}
void menuList5(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[21],6,8,52,nenu_Y + 4);
}
void menuList6(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[22],6,8,52,nenu_Y + 4);
}
void menuList7(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[23],6,8,52,nenu_Y + 4);
}
void menuList8(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[24],6,8,52,nenu_Y + 4);
}
void menuList9(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[25],6,8,52,nenu_Y + 4);
}
void menuList10(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[16],6,8,58,nenu_Y + 4);
}
void menuList11(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[17],6,8,58,nenu_Y + 4);
}
void menuList12(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[18],6,8,58,nenu_Y + 4);
}
void menuList13(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[19],6,8,58,nenu_Y + 4);
}
void menuList14(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[20],6,8,58,nenu_Y + 4);
}
void menuList15(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[21],6,8,58,nenu_Y + 4);
}
void menuList16(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[22],6,8,58,nenu_Y + 4);
}
void menuList17(unsigned char nenu_Y)
{
    DrawGraphics(Hzk[4],12,12,16,nenu_Y);
    DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[23],6,8,58,nenu_Y + 4);
}
void menuList18(unsigned char nenu_Y)
{
         DrawGraphics(Hzk[4],12,12,16,nenu_Y);
         DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[24],6,8,58,nenu_Y + 4);
}
void menuList19(unsigned char nenu_Y)
{
         DrawGraphics(Hzk[4],12,12,16,nenu_Y);
         DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[17],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[25],6,8,58,nenu_Y + 4);
}
void menuList20(unsigned char nenu_Y)
{
         DrawGraphics(Hzk[4],12,12,16,nenu_Y);
         DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[18],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[16],6,8,58,nenu_Y + 4);
}
void menuList21(unsigned char nenu_Y)
{
         DrawGraphics(Hzk[4],12,12,16,nenu_Y);
         DrawGraphics(Hzk[0],12,12,28,nenu_Y);
        DrawGraphics(Hzk[1],12,12,40,nenu_Y);
        DrawGraphics(font6x8[18],6,8,52,nenu_Y + 4);
        DrawGraphics(font6x8[17],6,8,58,nenu_Y + 4);
}
void menuList22(unsigned char nenu_Y)
{
        ClearArea((flagPoint_X + 11),(nenu_Y - 1),52,(menu_Y2 - menu_Y1 - 1));
}
void scrollAction(unsigned char Direction)
{
         if(Direction == 0)
        {
            if(scrollLocation < (menuNum - 1))
                {
                ClearArea(scroll_X,(scroll_Y + scrollAdd * scrollLocation),11,scroll_Height);
                        scrollLocation ++;
                DrawArea(scroll_X,(scroll_Y + scrollAdd * scrollLocation),11,scroll_Height);
                }
        }
        else if(Direction == 1)
        {
                if(scrollLocation > 0)
                {
                    ClearArea(scroll_X,(scroll_Y + scrollAdd * scrollLocation),11,scroll_Height);
                        scrollLocation --;
                DrawArea(scroll_X,(scroll_Y + scrollAdd * scrollLocation),11,scroll_Height);
                }
        }
}
void secleteMenu(void)
{
    unsigned char start_Y;
        if((scrollLocation%2) == 0)
        {
            start_Y = menu_Y1 - 1;
        }
        else
        {
            start_Y = menu_Y2 - 1;
        }
    GetFanBit((flagPoint_X - 1),start_Y,64,(menu_Y2 - menu_Y1 - 1));
}
void flagPoint(void)
{
        if((scrollLocation%2) == 0)
        {
                ClearArea(flagPoint_X,(flagPoint_Y + flagPointAdd),12,12);
                DrawGraphics(Hzk[5],12,12,flagPoint_X,flagPoint_Y);
        }
        else
        {
                ClearArea(flagPoint_X,flagPoint_Y,12,12);
                DrawGraphics(Hzk[5],12,12,flagPoint_X,(flagPoint_Y + flagPointAdd));
        }
}
void updateMenuList(void)
{
         unsigned char menuListLocation;
        menuListLocation = (((scrollLocation+1)/2)+((scrollLocation+1)%2));
        ClearArea((flagPoint_X + 11),(menu_Y1 - 1),52,(menu_Y2 - menu_Y1 - 1));
        ClearArea((flagPoint_X + 11),(menu_Y2 - 1),52,(menu_Y2 - menu_Y1 - 1));
        (*nemuListTable[menuListLocation - 1][0])(menu_Y1);
        (*nemuListTable[menuListLocation - 1][1])(menu_Y2);
}

出0入0汤圆

 楼主| 发表于 2008-5-2 02:27:36 | 显示全部楼层
其中用到的5110液晶操作函数以前贴过的。
ClearArea是清空某块面积上的点阵
DrawArea是在任意区域画一个任意面积(可以超过液晶总面积)的图
GetFanBit任意位置的某点取反

出0入0汤圆

发表于 2008-5-2 02:33:24 | 显示全部楼层
楼主你太强了,佩服佩服!

出0入0汤圆

 楼主| 发表于 2008-5-2 02:54:46 | 显示全部楼层
哎呀楼上的!!!我还没写完呢!!!!

程序看起来很简单,我说说思路,让大家能看懂,不希望大家直接照抄我的程序,希望大家看了我的思路能自己写,这个是最重要的!

下面是按键以后的调用程序:

while(1)
{
        if((PINA & 0x10) == 0x00)//第三个键按下下一行
        {
                    scrollAction(0);
                        flagPoint();
                        updateMenuList();
                    ReflashDisPlay();
                        while((PINA & 0x10) == 0x00);//等待弹起
                        Delay(30000);
        }
                   if((PINA & 0x20) == 0x00)//第二个键按下上一行
        {
                    scrollAction(1);
                        flagPoint();
                        updateMenuList();
                        ReflashDisPlay();
                        while((PINA & 0x20) == 0x00);//等待弹起
                        Delay(30000);
        }
                if((PINA & 0x40) == 0x00)//第一个键按下选中
        {
                    secleteMenu();
                        ReflashDisPlay();
                    while((PINA & 0x40) == 0x00);//等待弹起
                    secleteMenu();
                        ReflashDisPlay();
                        Delay(30000);
        }

每个按键的输入分按下和弹起。


1楼程序其实很简单,大部分篇章都在画图(写菜单项的名字)去了。

思路分四部分:
1。滚动条,每按一次下翻先计算一次步进(意思是算得的每次移动的距离),再在当前位置把滚动条下移一个步进,根据移了多少次,记录一个最重要的东西:“当前位置”,下面三项就根据这个进行同步计算。
2。菜单项,把所有菜单项每两条作为一页显示,每当按了两次下翻就显示下一页的内容,不过当按了上翻就减一次下翻的数值。
3。定位黑圆“●”,用来指示当前选择到的菜单项,“当前位置”为单数就出现在第一行,“当前位置”为双数就出现在第二行。相当于鼠标停留在按扭上。
4。反白,就是按下确定键以后执行 当前选择到的菜单项 时给出的一个视觉上的提示。相当于鼠标在按扭的位置时按下了按扭。,“当前位置”为单数就反白第一行,“当前位置”为双数就反白第二行。

出0入0汤圆

 楼主| 发表于 2008-5-2 03:02:04 | 显示全部楼层
这个程序只是用来测试菜单的显示,
如果要在按了确定去执行相应的程序,可以先把每一个菜单项要执行的函数按顺序放在 指向函数的指针数组 里,
然后根据“当前位置”,去查表,这就是 “根据参数调用不同的函数” ,我们把它叫做call(),
再把这个call()放在 判断确定键弹起(while((PINA & 0x40) == 0x00);//等待弹起) 之后,就能在确定键弹起之后执行菜单列表项所对应的功能了!!

出0入0汤圆

发表于 2008-5-2 03:02:59 | 显示全部楼层
你的沙发和凳子都被我占了,呵呵...

楼主的思路简直帅呆了,学习学习.

出0入0汤圆

 楼主| 发表于 2008-5-2 03:09:23 | 显示全部楼层
给条裤子吧……,这么久了才两条,下面贴图足见诚心!!

(原文件名:1.gif)


(原文件名:2.gif)

(原文件名:images.jpg)


(原文件名:images2.jpg)


(原文件名:images3.jpg)


(原文件名:images4.jpg)


(原文件名:3.gif)


(原文件名:4.gif)


(原文件名:5.gif)

出0入0汤圆

 楼主| 发表于 2008-5-2 03:13:38 | 显示全部楼层
我们要向3楼和6楼的这位同志哥学习,积极回帖!

出0入0汤圆

 楼主| 发表于 2008-5-2 03:17:45 | 显示全部楼层
【6楼】 hn_ny_dxs 夏风,,跟你聊聊,
1。你用c8051f的下载器是什么型号?我看最便宜的都200大元,以前在公司用过c8051f330,可是现在不干了,没下载器,哎……,堪称最强的51的单片机都没法用了,看有没有c8051f的下载时序,咱自己做下载器??!!
2。你的相机真好(http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=963695&bbs_page_no=1&search_mode=3&search_text=hn_ny_dxs&bbs_id=9999)拍的so清楚!

出0入0汤圆

发表于 2008-5-2 03:26:22 | 显示全部楼层
下载器就是新华龙的U-EC5,花了我240买来的。上周六又给我同事买了一个,自已学习用的。
坛子里有人发了个帖,是用并口做的下载线,不知是否好用,你搜一下。

我每次拍照片都是用脚架的, 不然手太抖了,拍出来的图片没法看....

出0入0汤圆

 楼主| 发表于 2008-5-2 03:28:31 | 显示全部楼层
你的板子太帅了,还有剩余不?搞来玩玩啊,并口的,,完蛋了我电脑没并口……,就冲你的板子买个U-PDC(便宜,串口只有下载功能)

出0入0汤圆

发表于 2008-5-2 03:35:38 | 显示全部楼层
呵呵,这么冲动啊!

板子不多了。太漂亮了,被同事强行买走了好几块。

出0入0汤圆

 楼主| 发表于 2008-5-2 03:39:46 | 显示全部楼层
再说了,c8051f咱也会玩啊,上手快啊,弄个硬盘盒就是移动硬盘,插上电池耳机就是mp3,蛮不错的!!板子搞的的确好看,多做几片网上卖!

出0入0汤圆

发表于 2008-5-2 03:45:51 | 显示全部楼层
个人卖这些东西挺麻烦的,特别是全款到付的,快递代收也不方便。

出0入0汤圆

 楼主| 发表于 2008-5-2 03:47:43 | 显示全部楼层
我有网店,帮你卖,可以商量一下啊!!!
淘宝店:http://shop34948174.taobao.com/
我QQ157749986

出0入0汤圆

发表于 2008-5-2 03:51:01 | 显示全部楼层
呵呵,谢谢!

我眼下重要的是把程序调出来,别的可以暂缓一下,毕竟做这块板的目的不是冲着Money来的。

出0入0汤圆

 楼主| 发表于 2008-5-2 03:52:27 | 显示全部楼层
行,期待你的程序。

好象跟跑题了,呵呵

出0入0汤圆

发表于 2008-5-2 07:30:02 | 显示全部楼层
好贴!

出0入0汤圆

发表于 2008-5-2 12:25:03 | 显示全部楼层
楼主也是九江的?

出0入0汤圆

发表于 2008-5-2 12:40:40 | 显示全部楼层
支持,顶帧...

出0入0汤圆

 楼主| 发表于 2008-5-2 14:44:09 | 显示全部楼层
是九江的,而且一直在九江

出0入0汤圆

发表于 2008-5-3 08:05:56 | 显示全部楼层
是否有更精简的方式,菜單code太大了,每次都佔好大空间.

出0入0汤圆

发表于 2008-5-3 09:14:13 | 显示全部楼层
请问LZ,5110的汉字字库是怎样生成的?用什么软件?

出0入0汤圆

发表于 2008-5-3 12:07:17 | 显示全部楼层
谢谢楼主

出0入0汤圆

 楼主| 发表于 2008-5-3 15:19:32 | 显示全部楼层
23楼:生成汉字的软件ouravr有下的,专门用在3310液晶的,找找

22楼:我这个菜单我觉得已经很精简了,如果没有那么多菜单项目code还算比较少啦,我把菜单项减少到了5个,菜单部分的程序占了13%code区,我弄了一晚上也没办法再减了

出0入0汤圆

发表于 2008-5-3 17:28:55 | 显示全部楼层
我也来了

出0入0汤圆

 楼主| 发表于 2008-5-8 11:23:49 | 显示全部楼层
阿莫啊,看看7楼

出0入0汤圆

发表于 2008-5-8 12:00:22 | 显示全部楼层
不错,支持楼主传裤子。

出0入0汤圆

发表于 2008-5-8 13:37:48 | 显示全部楼层
我看应该顶上去,穿裤子。

出0入0汤圆

 楼主| 发表于 2008-5-9 18:15:40 | 显示全部楼层
呵呵,谁嫌裤子多啊

出0入0汤圆

发表于 2008-5-9 19:18:55 | 显示全部楼层
多谢!

出0入0汤圆

发表于 2008-5-9 21:47:53 | 显示全部楼层
楼主好贴。谢谢分享

出0入0汤圆

 楼主| 发表于 2008-5-9 22:13:08 | 显示全部楼层
怎么穿裤子这么难呢……

出0入0汤圆

发表于 2008-5-9 23:58:39 | 显示全部楼层
【33楼】 shrlyq 胖胖心碎了

积分:132
派别:
等级:------
来自:江西九江

怎么穿裤子这么难呢……  
==========================================


干脆裸.奔吧,呵呵...

出0入0汤圆

发表于 2008-5-10 02:31:19 | 显示全部楼层
顶一下!思路确实很好,学习了!呵呵

出0入0汤圆

 楼主| 发表于 2008-5-11 23:51:38 | 显示全部楼层
黑猫警长兴灾乐祸

出0入0汤圆

发表于 2008-6-20 11:08:28 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2008-6-20 13:47:42 | 显示全部楼层
好帖。。。

出0入0汤圆

发表于 2009-8-23 10:51:51 | 显示全部楼层
楼主你这个反白中ClearArea()函数在哪呢??有没有容易理解的反白,谢啦

出0入0汤圆

发表于 2009-8-23 16:30:35 | 显示全部楼层
正好也有这个屏 谢谢啦

出0入0汤圆

发表于 2009-9-25 21:56:33 | 显示全部楼层
好资料,收藏了

出0入0汤圆

发表于 2009-9-25 22:04:11 | 显示全部楼层
jh

出0入0汤圆

发表于 2009-9-25 22:57:49 | 显示全部楼层
看看

出0入0汤圆

发表于 2009-9-25 23:50:41 | 显示全部楼层
强人!

出0入0汤圆

发表于 2009-9-26 00:25:38 | 显示全部楼层
顶下~

出0入0汤圆

发表于 2009-9-26 00:31:59 | 显示全部楼层
好帖,顶!

出0入0汤圆

发表于 2009-9-26 17:14:41 | 显示全部楼层

出0入0汤圆

发表于 2009-9-26 19:12:41 | 显示全部楼层
谢谢楼主,是该给个裤子

出0入0汤圆

发表于 2009-9-26 19:58:39 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2009-9-26 20:26:10 | 显示全部楼层
不错!顶一把!

出0入0汤圆

发表于 2009-9-29 10:36:25 | 显示全部楼层
强人真多啊!!!

出0入0汤圆

发表于 2010-3-1 15:31:00 | 显示全部楼层
强人,MARK~~~

出0入0汤圆

发表于 2010-3-1 16:08:32 | 显示全部楼层
留名~!~~

出0入0汤圆

发表于 2010-3-1 16:58:22 | 显示全部楼层
很强,牛!

出0入0汤圆

发表于 2010-3-1 17:12:32 | 显示全部楼层
谢谢。。。好东西。

出0入0汤圆

发表于 2010-3-1 19:37:21 | 显示全部楼层
顶楼主,如楼主所说,思路很重要。

出0入0汤圆

发表于 2010-3-2 01:05:56 | 显示全部楼层
学习一下楼主的思路!!!

出0入0汤圆

发表于 2010-3-2 12:02:21 | 显示全部楼层
很好,我也正好有这个屏 谢谢啦

出0入0汤圆

发表于 2010-4-11 19:17:25 | 显示全部楼层
学习一下,觉得思路很重要。

出0入0汤圆

发表于 2010-4-18 01:11:01 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-4-18 13:02:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-18 13:37:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-18 14:39:53 | 显示全部楼层
顶一下~~~

出0入0汤圆

发表于 2010-4-26 16:47:49 | 显示全部楼层
好东西,支持了.

出0入0汤圆

发表于 2010-4-26 17:39:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-14 21:56:36 | 显示全部楼层
顶个,又学习到了

出0入0汤圆

发表于 2010-8-6 23:01:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-6 23:27:25 | 显示全部楼层
进来支持下!

出0入0汤圆

发表于 2010-10-8 00:27:03 | 显示全部楼层
有谁做过这方面的应用吗?多谢指教

出0入0汤圆

发表于 2010-10-26 16:08:39 | 显示全部楼层
楼主以及各位高手:
    我一直在琢磨菜单结构,看大家用的大都是结构体,里面把数据和处理数据的函数放在一个结构体里面,我百看也不能理解是怎么实现的? 这个好像是面向对象的程序设计了吧!? 可是我没有学过C++, 对面向对象的程序设计方法不理解? 楼主以及各位高手能不能详细的指导指导我一下啊!?不胜感激!!!!!!!!!!!

出0入0汤圆

发表于 2011-3-23 00:20:27 | 显示全部楼层
顶一下。。

出0入0汤圆

发表于 2011-3-23 09:32:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-23 09:35:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-23 09:45:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-23 10:23:55 | 显示全部楼层
咱也成Mark党了

出0入0汤圆

发表于 2011-3-23 10:53:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-23 14:00:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-24 15:46:54 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-24 19:51:47 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-4-24 21:28:26 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-6-13 00:06:47 | 显示全部楼层
mark!!!!!

出0入0汤圆

发表于 2011-7-18 15:57:15 | 显示全部楼层
留记号,学习,树状菜单思路

出0入0汤圆

发表于 2011-7-18 16:01:34 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-18 17:00:09 | 显示全部楼层
回复【楼主位】shrlyq 胖胖心碎了
-----------------------------------------------------------------------

好东西学习了

出0入0汤圆

发表于 2011-7-18 19:11:41 | 显示全部楼层
很不错啊。菜单函数调用使用函数指针数组,让程序简单化,不错。学习了。以前写程序很少涉及函数指针。今天被楼主考住了。回去猛看了一轮书。。支持你了。

出0入0汤圆

发表于 2011-7-18 20:47:36 | 显示全部楼层
学习,学习……

出0入0汤圆

发表于 2011-7-19 08:46:05 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-7-19 10:55:21 | 显示全部楼层
谢谢 保持联系...

出0入0汤圆

发表于 2011-7-19 11:01:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-20 20:13:49 | 显示全部楼层
顶起来

出0入0汤圆

发表于 2011-8-24 09:06:31 | 显示全部楼层
ding.

出0入0汤圆

发表于 2012-2-22 20:29:07 | 显示全部楼层
必须得支持啊

出0入0汤圆

发表于 2012-2-29 23:56:24 | 显示全部楼层

出0入0汤圆

发表于 2012-3-1 08:28:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-1 09:40:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-27 19:29:08 | 显示全部楼层
楼主有没完整的程序啊

出0入0汤圆

发表于 2012-3-27 19:33:38 | 显示全部楼层
还可以顶,应该顶上去

出0入0汤圆

发表于 2012-3-27 19:48:18 | 显示全部楼层
留存着有机会备用

出0入0汤圆

发表于 2012-3-27 20:00:51 | 显示全部楼层
学习了。谢谢楼主!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-28 06:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表