MULTIPAGE控件提供了一系列API可以很方便的添加其他控件在它的tab页上,但是同时碰到一个问题:假如我想要在某个tab页上用GUI_DrawLine画一些线怎么办?
首先我想到用multipage每一页的dialog控件,WM_SelectWindow后在上面操作,尝试后发现一点反应都没有。
查阅官方文档uC-GUI_User_Manual_522.pdf,发现有两个API:MULTIPAGE_AddEmptyPage和MULTIPAGE_AddPage,用来把某一个WM_HWIN类型的window添加到MULTIPAGE上去(创建一个新的tab页),(郁闷的是中文的官方手册上根本没有提到这两个api,翻译敢专业点?),于是我就在欲添加的那个window上GUI_DrawLine然后把它添加到MULTIPAGE上,这样带来的效果就是在画完的瞬间被MULTIPAGE覆盖。
然后又想到或许可以把MULTIPAGE的背景设为透明来让被覆盖的内容显示。就是在这步上花了我整整一天时间,查了很多遍官方文档,试了很多次,在群里问了很多遍,都得不到想要的结果。可把我给纠结的。就在我快要放弃的时候想到有两个API: WM_BringToBottom和WM_BringToTop,WM_BringToBottom的原版函数描述是:Places a window behind its siblings。意识是把一个窗口放在它同属的下面。那也就是说要有共同的父窗口,那就把WM_HBKWIN作为他们的父窗口好了。当我要显示自己画的图形的时候,就把自定义window放在上面,要显示MULTIPAGE的时候就把MULTIPAGE放在前面。最后的效果如图: