回 帖 发 新 帖 刷新版面

主题:新手求助!!!

我刚接触C不久,现在要做一界面,里面的按钮控件要封装,我现在不知道这么做对不对,希望大家能够帮助我改正一下,提出更多的办法。
/*函数声明*/
void drawbutton(UGL_GC_ID gc,int button_left,int button_top,int button_right,int button_bottom,int button_linewidth ,int button_forgroundcolor,
      int button_backgroundcolor,unsigned char button_word, int button_wordforgroundcolor,int button_wordbackgroundcolor,
      int button_word_left,int button_word_top);


struct button
{
int left;
int top;
int right;
int bottom;
int linewidth;
int foregroundColor;
int backgroundColor;
unsigned char word[20];
int wordforgroundcolor;
int wordbackgroundcolor;
int word_left;
int word_top;
};
struct button button_red={450,880,520,930,4,LIGHTRED,RED,"红",WHITE,RED,480,900};
struct button button_green=
{590,880,660,930,4,LIGHTRED,GREEN,"绿",WHITE,GREEN,620,900};



 drawbutton(gc,button.left,button.top,button.right,button.bottom,button.linewidth ,button.forgroundcolor,
      button.backgroundcolor,button.word, button.wordforgroundcolor,button.wordbackgroundcolor,
      button.word_left,button.word_top);


void drawbutton(UGL_GC_ID gc,int button_left,int button_top,int button_right,int button_bottom,int button_linewidth ,int button_forgroundcolor,
      int button_backgroundcolor,unsigned char button_word, int button_wordforgroundcolor,int button_wordbackgroundcolor,
      int button_word_left,int button_word_top)
{
    unsigned char regionMessage1[23]={0};
    uglBatchStart(gc);
  uglLineWidthSet (gc, 4);
  uglForegroundColorSet(gc, colorTable[button_forgroundcolor].uglColor);
  uglBackgroundColorSet(gc, colorTable[button_backgroundcolor].uglColor);
    uglRectangle(gc,button_red.left,button_red.top, button_red.right,button_red.bottom);
    uglFontSet(gc, fontFixed);
    uglForegroundColorSet(gc, colorTable[button_wordforgroundcolor].uglColor);
  uglBackgroundColorSet(gc, colorTable[button_wordbackgroundcolor].uglColor);
  sprintf(regionMessage1,"红");
  stringConvert(regionMessage1,button_word_left,button_word_top);
 
  uglForegroundColorSet(gc, colorTable[button_forgroundcolor].uglColor);
  uglBackgroundColorSet(gc, colorTable[button_backgroundcolor].uglColor);
    uglRectangle(gc,button_green.left,button_green.top, button_green.right,button_green.bottom);
    uglFontSet(gc, fontFixed);
    uglForegroundColorSet(gc, colorTable[button_wordforgroundcolor].uglColor);
  uglBackgroundColorSet(gc, colorTable[button_wordbackgroundcolor].uglColor);
  sprintf(regionMessage1,"绿");
  stringConvert(regionMessage1,button_word_left,button_word_top);
  uglBatchEnd(gc);
}
以上是我编的关于按钮控件的程序,请各位帮小妹看看,提出更多建议,谢谢了。

回复列表 (共3个回复)

沙发

为何要用OpenGL里的东东来做呢?对于这种东东来说,GL效率其实并不高啊。

板凳


呵呵,我不太会。以后还要您多多指导啊。

3 楼

呵呵,不敢不敢,这里高手如云,我还算不得什么:)
只是不太清楚您为啥用GL做这东东?这就类似于杀鸡用牛刀,大材小用不说还适得其反:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册