久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

MINIGUI開發(fā)中遇到的問題和對(duì)應(yīng)學(xué)習(xí)方法

時(shí)間:2020-10-25 14:23:29 學(xué)習(xí)方法 我要投稿

MINIGUI開發(fā)中遇到的問題和對(duì)應(yīng)學(xué)習(xí)方法

  篇一:MINIGUI開發(fā)中遇到的問題及解決方法

MINIGUI開發(fā)中遇到的問題和對(duì)應(yīng)學(xué)習(xí)方法

  MINIGUI開發(fā)中遇到的問題及解決方法

  MiniGui是基于消息機(jī)制的開發(fā)工具,由于不具備可視化性,這就要求開發(fā)人員熟悉其控件及消息機(jī)制。首先要閱讀其中的開發(fā)文檔如:

  MINIGUI-USER-MANUAL.pdf(了解其配置、編譯及安裝方法); MiniGUITechWhitePaper-2.0-4C.pdf(了解控件及其用途);

  MINIGUI-PROG-GUIDE-V2.0-4C.pdf(具體控件屬性、消息等);

  另外,給出了控件的示例,可以編譯學(xué)習(xí),示例程序一般在mg-samples-2.0.4文件夾中。

  在開發(fā)中遇到了一些問題,折騰了半天最后才發(fā)現(xiàn)是MiniGui的問題。程序員開發(fā)時(shí)大多數(shù)是邊做邊學(xué)的,遇到問題再查找解決方法,這樣印象更深刻。下面把經(jīng)常遇到,甚至是低級(jí)幼稚的問題總結(jié)一下,做個(gè)記錄。

  1、不想修改的編輯框仍可以輸入或輸入的一個(gè)字符卻顯示兩個(gè)等;

  大多數(shù)可編輯的控件都有READONLY屬性(不同控件前綴可能不同),該屬性決定編輯框?yàn)橹蛔x屬性,用戶不能修改編輯框中的內(nèi)容,但插入符可見,因此,如果不想讓編輯框可編輯,加上此屬性就ok了。

  2、編輯框上不該有光標(biāo)閃爍時(shí),卻總是會(huì)閃爍;

  MiniGui有自己的消息循環(huán)機(jī)制,常用的如MSG_PAINT,用于屏幕輸出。一般有以下情況時(shí)系統(tǒng)會(huì)收到MSG_PAINT消息:

  ① 用戶移動(dòng)窗口或顯示窗口時(shí);

  ② 用InvalidateRect更新窗口的無效區(qū)域;

  ③ 調(diào)用UpdateWindow重繪窗口;

 、 覆蓋程序窗口的對(duì)話框或消息框被消除;

 、 下拉或彈出菜單被消除;

  出現(xiàn)閃爍光標(biāo)就要檢查程序中是否有以上情況發(fā)生;

  3、如何修改控件的背景顏色;

  MiniGui各控件的背景顏色是已經(jīng)在MiniGUI.cfg的windowelementcolors段設(shè)置好的。每個(gè)控件都會(huì)有以Register開頭的函數(shù),根據(jù)該函數(shù)中WndClass.iBkColor對(duì)應(yīng)的顏色序號(hào)在MiniGUI.cfg中查找進(jìn)行修改即可。但這種更改是全局性的,如果只是臨時(shí)更改可用SetWindowBkColor和SetWindowElementColorEx來設(shè)置背景色和前景色。

  4、LISTVIEW創(chuàng)建及但不顯示問題;

  由于listview是MiniGui的擴(kuò)展功能,這樣在配置時(shí)要把EXT lib中的LISTVIEW control選中,具體:

 、 在libminigui-2.0.4-linux下執(zhí)行make menuconfig,選中Ext library options中的Listview control,編譯,修改makefile文件,把ext lib下的文件編譯進(jìn)去(一般情況下makefile已經(jīng)包含了),并保證已經(jīng)把編譯好的libmgext-2.0.so.4.0.0拷貝到你的文件系統(tǒng)的 lib下;

  ② 在工程中如S7000的MiniGUIMain中增加

  if (!InitMiniGUIExt())

  return 2;

 、 這樣就可以使用這個(gè)控件了。

  5、再次查看Listview內(nèi)容時(shí),第一行數(shù)據(jù)不顯示;

  用listview控件時(shí),先把控件中的內(nèi)容刪除即發(fā)送LVM_DELALLITEM,然后再添加數(shù)據(jù),以免數(shù)據(jù)顯示混亂;

  6、button上不能同時(shí)顯示文字和圖片;

  在button.c中畫圖和畫字是在btnPaintContent中,而BS_BITMAP和BS_TEXT同在同一個(gè)switch,只能畫一種情況。解決方法:把圖和字放在不同的函數(shù)中,并且在畫字的函數(shù)中不進(jìn)行switch,否則,仍畫不出字;

  7、button上的圖片不能滿button顯示

  修改draw_bitmap_button函數(shù)中關(guān)于畫圖時(shí)圖片的位置處理;

  8、SKIN實(shí)現(xiàn)chkbutton動(dòng)態(tài)換圖

  Skin源碼功能簡(jiǎn)單,不能實(shí)現(xiàn)動(dòng)態(tài)更換字的顏色,字體,換圖等,一方面是skin結(jié)構(gòu)問題,一方面是缺少相應(yīng)功能,為了實(shí)現(xiàn)動(dòng)態(tài)換圖,進(jìn)行了如下更改,可見SKIN_S7000宏。

 、 chkbutton文件修改

  增加si_chkbutton_t,根據(jù)flag取相應(yīng)的bmp_index;

  增加DECL_BUTTON,取si_chkbutton_t類型的type_data;

  chkbutton_draw_bg:改變畫圖方式,根據(jù)item的大小位置進(jìn)行縮放。 增加chkbutton_get_bmp獲取bmp_index;

  增加chkbutton_set_bmp設(shè)置需要的bmp;

  chkbutton_ops中增加chkbutton_get_bmp和chkbutton_set_bmp;

  ⑵ skin文件修改

  增加skin_get_chkbt_bmp獲取bmp_index;

  增加skin_set_chkbt_bmp設(shè)置bmp_index;

  由于refresh_item刷新的是item的rc_hittest,根據(jù)需要修改成刷新item大小的區(qū)域;

  9、skin修改nrmlabel背景圖和字的顏色

 、 skin.h文件修改

  增加si_labelbmp_t,兩個(gè)bmpindex;

  si_nrmlabel_t增加si_labelbmp_t,flag(color)和bmp_flag。根據(jù)flag和bmp_flag的值設(shè)置相應(yīng)的color和bmp_index;

  ⑵ skin.c文件修改

  增加skin_get_label_color獲取bmp_index;

  增加skin_set_label_color設(shè)置bmp_index和color,根據(jù)flag和bmp_flag的值設(shè)置相應(yīng)的color和bmp_index;

  由于refresh_item刷新的是item的rc_hittest,根據(jù)需要修改成刷新item大小的區(qū)域;

 、 label.c文件修改

  set_label:增加根據(jù)flag和bmp_flag的值設(shè)置相應(yīng)的color和bmp_index; nrmlabel_ops中增加nrmlabel_draw_bg,用于畫圖和畫字;

  去掉nrmlabel_draw_attached的調(diào)用;

  篇二:學(xué)習(xí)MiniGui之窗口創(chuàng)建篇

  最近在學(xué)習(xí)MiniGui,將一些分析的結(jié)果貼出來供大家參考,同時(shí)歡迎大家的指正。 圖形編程中,窗口是一個(gè)重要的概念,窗口其實(shí)是一個(gè)矩形框,應(yīng)用程序可以使用其從而達(dá)到輸出結(jié)果和接受用戶輸入的效果。窗口系統(tǒng)(Window System)界于操作系統(tǒng)層次之上,它是一個(gè)軟件系統(tǒng),負(fù)責(zé)把顯示屏幕分隔為不同的部分來幫助用戶管理和控制不同的顯示環(huán)境,它提供基于窗口的工作模式。在Linux上面,X就是一個(gè)典型的窗口系統(tǒng)吧。

  在MiniGui中有三種窗口類型:主窗口,對(duì)話框和控件窗口。主窗口作為應(yīng)用程序的主界面或開始界面。子窗口通常是控件窗口,也可以是自定義窗口類,這里的控件窗口說白了就是一些窗口上面的控件,比如按鈕,編輯框等。對(duì)話框其實(shí)就是主窗口,只不過一般為了完成特殊用途,所以在此加以區(qū)分。

  下面我們一起來看看這三種窗口類型的創(chuàng)建吧。首先看CreateMainWindow函數(shù),它創(chuàng)建一個(gè)主窗口:由于代碼比較長(zhǎng),這里就不全部貼出了,主要是說說關(guān)鍵的部分。

  CreateMainWindow函數(shù)通過接受PMAINWINCREATE類型的參數(shù)而創(chuàng)建一個(gè)窗口,并返回其句柄。關(guān)于PMAINWINCREATE結(jié)構(gòu)的具體成員變量,大家可以去查看源碼。下面主要對(duì)函數(shù)內(nèi)部做個(gè)簡(jiǎn)單介紹。

  1. 聲明一個(gè)PMAINWIN類型,并分配空間,該變量用來存放創(chuàng)建的主窗口的信息

  2. 說下面的代碼之前,先說說托管(Hosting)窗口和被托管(Hosted)窗口吧。我們知道

  MiniGui內(nèi)部實(shí)現(xiàn)了消息機(jī)制,即當(dāng)有鍵盤輸入事件發(fā)生時(shí),就往消息隊(duì)列中發(fā)送鍵盤消息,而一般是主窗口會(huì)不停的從消息隊(duì)列中取出消息來處理,或者自己響應(yīng),或者忽略,或者派發(fā)給其他的窗口。那么這里就有一個(gè)問題,消息隊(duì)列是每個(gè)主窗口都有一個(gè)呢,還是所有的主窗口都使用同一個(gè)消息隊(duì)列?在MiniGui中有個(gè)特殊的主窗口HWND_DESKTOP,它是所有窗口的父窗口,直觀的說就是整個(gè)桌面的窗口。當(dāng)一個(gè)主窗口在創(chuàng)建的時(shí)候,可以指定新建一個(gè)消息隊(duì)列,也可以使用別的主窗口的消息隊(duì)列,如果是后者,假設(shè)主窗口A在創(chuàng)建時(shí)指定使用主窗口B的消息隊(duì)列,那么A就被稱為被托管窗口,而B則被稱為托管窗口。所以很明顯CreateInfo.hHosting就是用來指明托管窗口的。來看下面的代碼,這里對(duì)MiniGUI的兩種運(yùn)行模式進(jìn)行了區(qū)分,1-26行是MiniGUI-Threads模式,在這種模式下,如果托管窗口為HWND_DESKTOP,則判斷當(dāng)前線程是否已經(jīng)有了消息隊(duì)列,如果沒有則掉InitThreadInfo來新建一個(gè)消息隊(duì)列,否則使用已經(jīng)有的消息隊(duì)列;如果托管窗口不為HWND_DESKTOP,則返回hHosting所在的主窗口的消息隊(duì)列。這就保證了同一個(gè)線程的所有窗口使用同一個(gè)消息隊(duì)列。27-31行是非MiniGUI-Threads模式

  下,新的主窗口使用HWND_DESKTOP的消息隊(duì)列,托管主窗口如果為空則使用HWND_DESKTOP,否則設(shè)置為pHosting所在的主窗口。

  3. 下面的幾行是對(duì)pWin進(jìn)行初始化的操作,第1行賦值消息處理回調(diào)函數(shù)。第9行,

  初始化pZorderNode成員

  4. 初始化結(jié)束之后,就開始發(fā)送消息通知自身來真正的繪制窗口了。1-4行發(fā)送本窗口

  的MSG_SIZECHANGING和MSG_CHANGESIZE消息,會(huì)調(diào)用本窗口消息回調(diào)函數(shù)中的相應(yīng)處理部分。第6行是發(fā)送MSG_ADDNEWMAINWIN消息給HWND_DESKTOP窗口,HWND_DESKTOP窗口主要負(fù)責(zé)初始化Clip區(qū)和Invalid區(qū),并且把當(dāng)前窗口添加到sg_MainWinZOrder鏈表里,這個(gè)鏈表記錄的是所有窗口的疊加順序,在顯示和隱藏窗口的時(shí)候,疊加順序很重要,它會(huì)決定屏幕上哪些窗口會(huì)受影響而需要重繪。第9行發(fā)送MSG_CREATE消息給窗口,窗口接受到此消息一般進(jìn)行子窗口的初始化和創(chuàng)建,如果創(chuàng)建失敗了,則通知HWND_DESKTOP窗口銷毀該主窗口。

  接下來我們看對(duì)話框的創(chuàng)建過程,對(duì)話框分為模態(tài)和非模態(tài)對(duì)話框。非模態(tài)對(duì)話框的創(chuàng)建過程和主窗口的創(chuàng)建過程差不多,其中也調(diào)用了CreateMainWindow函數(shù),之后還調(diào)用了CreateWindowEx創(chuàng)建對(duì)話框上的控件。模態(tài)對(duì)話框就是顯示之后,用戶不能再切換到其他主窗口進(jìn)行工作的對(duì)話框,而只能在關(guān)閉之后,才能使用其他的主窗口,通過DialogBoxIndirectParam創(chuàng)建,一開始的步驟與非模態(tài)對(duì)話框類似,以下的代碼是其不同的部分:第7行,hOwner是待創(chuàng)建對(duì)話框的托管主窗口,這里其實(shí)是把它disable掉了。第11行是處理MSG_INITDIALOG消息。第18-21行,是消息處理的循環(huán)機(jī)制,這里可以看到這就是為什么模態(tài)對(duì)話框一定要等到關(guān)閉之后,才可以使用其它的主窗口,這里還需要注意一點(diǎn),由于是從對(duì)話框的托管主窗口是HWND_DESKTOP窗口,因此他們共用一個(gè)消息隊(duì)列,此時(shí),對(duì)話框可能接受到發(fā)送給托管主窗口的消息,而由于在第7行中已經(jīng)將托管主窗口的dwStyle設(shè)置為WS_DISABLE了,因此在這些消息處理流程里面可以做相應(yīng)的處理(例如當(dāng)窗口被設(shè)置為WS_DISABLE時(shí),忽略該消息)。25-28行,當(dāng)窗口關(guān)閉時(shí),進(jìn)行的收尾工作。第31行enable托管主窗口。第23行判斷了當(dāng)前對(duì)話框是否是激活窗口,如果是的話,當(dāng)它關(guān)閉時(shí),它的托管主窗口應(yīng)該被激活(34-35L)。

  篇三:MiniGui常見問題

  MINIGUI常見問題 .......................................................................................................................................................... 2

  1、在運(yùn)行mginit時(shí),出現(xiàn)錯(cuò)誤 ................................................................................................................................. 2

  2、combox怎么老是得不到消息 ............................................................................................................................. 2

  3、CreateWindow()創(chuàng)建一個(gè)控件 ............................................................................................................................ 3

  4、如何編寫一個(gè)configure.in .................................................................................................................................. 3

  5、怎樣對(duì)minigui進(jìn)行裁剪 .................................................................................................................................... 3

  6、為什么運(yùn)行mginit后,我的機(jī)子好象死掉 ...................................................................................................... 3

  7、也問MiniGUI.cfg(和觸摸屏有關(guān)) ................................................................................................................. 4

  8、如何讓我們自己的應(yīng)用程序在啟動(dòng)mginit后自動(dòng)執(zhí)行 .................................................................................. 4

  9、配置minigui時(shí)還有哪里需要disable或enable呢? ...................................................................................... 4

  10、怎樣設(shè)置設(shè)置單行編輯框中光標(biāo)的位置 ........................................................................................................ 5

  11、在靜態(tài)文本控件中我如何設(shè)置文字顏色 ......................................................................................................... 6

  12、我也在寫軟鍵盤,設(shè)計(jì)特征是這樣的 ............................................................................................................ 6

  13、為什么GetMenuItemInfo()這個(gè)函數(shù)總是沒法用呀? ............................................................................. 38

  14、如何在 MiniGUI-Lite 當(dāng)中建立多個(gè)主窗口(再問多個(gè)主窗口會(huì)是這樣嗎) ......................................... 40

  15、如何用BitBlt顯示位圖 ................................................................................................................................... 41

  16、如何入手學(xué)習(xí) .................................................................................................................................................. 41

  17、如何參與 MiniGUI 的開發(fā) ........................................................................................................................... 45

  18、應(yīng)用程序主窗口的句柄如何獲取 .................................................................................................................. 46

  19、怎么讓主窗體是一個(gè)對(duì)話框 .......................................................................................................................... 46

  20、關(guān)于消息循環(huán)的問題 ...................................................................................................................................... 46

  21、關(guān)于定時(shí)器的一個(gè)問題 .................................................................................................................................. 47

  22、關(guān)于OpenAboutDialog()函數(shù) ......................................................................................................................... 47

  23、step1問題 ........................................................................................................................................................ 48

  24、minigui消息循環(huán)的問題 ................................................................................................................................. 48

  25、miniGUI的基本原理 ....................................................................................................................................... 50

  26、控件顯示在圖片的上面的問題 ...................................................................................................................... 50

  27、如何從 MiniGUI 切換到其它控制臺(tái) ............................................................................................................ 52

  28、我從未安裝過 MiniGUI。要安裝,需要下載哪些軟件包? ...................................................................... 52

  MiniGui常見問題

  1、在運(yùn)行mginit時(shí),出現(xiàn)錯(cuò)誤

  問:error in step 2,there is already an instance of mginit

  InitGUI failure when using /usr/local/etc/miniGUI.cfg as cfg file.

  我ps時(shí),看不到這個(gè)進(jìn)程.

  如何解決?謝謝.

  答:刪除 /var/tmp/m* 文件,再試試

  2、combox怎么老是得不到消息

  問:見了一個(gè)dialog,其中有一個(gè)combox,

  屬性是:ctrl_combobox,ws_visible| cbs_dropdownlist |ws_tabstop,

  id是idc_test

  在dialopro消息處理里面

  case msg_command:

  switch (wParam)

  {.....

  case idc_test:

  TextOut(HDC_SCREEN,10,10,"test ok?");

  break;

  .......

  }

  始終不能顯示我的test ok 字符,可是同樣的`button,radio button 卻可以得到消息 為什么?

  答1: 找到答案了,好像要用LOWORD(wParam) 來識(shí)別消息來源的id,不知道是不是所有的空間都要這樣,直接用wpraram 好像像combox就不行。我說的對(duì)不對(duì)呢? 還是請(qǐng)kongming說一說吧

  答2:是的,來自控件的通知消息,是以 MSG_COMMAND 消息的形式發(fā)送到父窗口的, wParam 是由控件的 ID 和消息碼 nc 組成的:

  wParam = MAKELONG(id, nc);

  要正確處理從控件發(fā)送到其主窗口的通知消息,就要先弄清楚是

  哪個(gè)控件發(fā)出來的通知消息,然后搞清楚是什么通知消息:

  switch (message) {

  case MSG_COMMAND:

  {

  int id = LOWORD (wParam);

  int nc = HIWORD (wParam);

  if (id == IDC_CONTROL && nc == NC_CLICK)

  ...

  }

  }

  3、CreateWindow()創(chuàng)建一個(gè)控件

  問:我的方法是用movewindow(hwnd,x,y,width,height,TRUE),在控件窗口過程中

  MSG_CREATE消息分支中調(diào)用,再調(diào)用SendAsyncMessage(hwnd,MSG_PAINT,0,0),

  使控件重繪,這樣做有個(gè)BUG,在MDE環(huán)境中我切到其他應(yīng)用程序使比如虛擬桌面,

  在切換回原應(yīng)用程序使控間沒有重繪,依舊是一個(gè)點(diǎn),為什么呢?

  斑竹,這個(gè)問題我想和好久了,你能幫我嗎?謝謝

  答:應(yīng)該避免在 MSG_CREATE 當(dāng)中調(diào)用 MoveWindow 函數(shù),

  你可以參考 SPINBOX 控件的實(shí)現(xiàn),處理 MSG_SIZE 等消息。

  在窗口正常建立之后,才能調(diào)用 MoveWindow,而且也沒有

  必要顯式調(diào)用 SendAsy.... 函數(shù)。

  4、如何編寫一個(gè)configure.in

  問:我在使用linux時(shí),由于項(xiàng)目的需要,我們的minigui要生成一個(gè)可執(zhí)行文件,但要有多個(gè)。

  c文件,我在閱讀了autoconf后,仍沒頭緒。請(qǐng)問我該如何編寫一個(gè)configure.in,可生成一個(gè) 可執(zhí)行文件,要求該項(xiàng)目中有至少倆個(gè)以上的。c文件。

  答:還記得“MiniGUI用戶”版中的那個(gè) Hello, World! 示例程序嗎?

  在 Makefile.am 中含有 hello.c 的那行,以次將你的源文件列出來就行了。

  中間用空格分開。當(dāng)然,其它相關(guān)的東西也要一并修改一下。

  其實(shí),你還可以參考 MDE 的東西,照貓畫虎總是可以的。

  5、怎樣對(duì)minigui進(jìn)行裁剪

  問:現(xiàn)在的minigui1.0對(duì)我來說,顯得太大了一點(diǎn)。我想對(duì)minigui下的記事本進(jìn)行功能擴(kuò)充。

  在滿足這個(gè)要求的前提下,怎樣將minigui裁到最小。我是一個(gè)新手,請(qǐng)各位高手多多指教。

  答:請(qǐng)看“MiniGUI 用戶”的精華區(qū)。

  6、為什么運(yùn)行mginit后,我的機(jī)子好象死掉

  問:為什么運(yùn)行mginit后,我的機(jī)子好象死掉,只是一個(gè)綠屏,按其他鍵也無反映,

  也不能切換到其他控制臺(tái)上。按ctrl+alt+esc會(huì)有一個(gè)彈出菜單。什么也不能用,也退不出去 答1:你是試試ctrl+esc和單獨(dú)的ctrl 你的vcongui好像有問題

  答2:分辨率太低了吧。你調(diào)整一下源代碼,就可以了。

  不過,新的版本(1.1.0Pre1)和新的演示(mde)

  能夠自動(dòng)根據(jù)分辨率調(diào)整,你可以試試新版本。

  7、也問MiniGUI.cfg(和觸摸屏有關(guān))

  問:MiniGUI.cfg原文件中有這樣的定義:

  mdev=mouse

  mtype=ps2

  注釋掉不行,怎么改呢?(我使用觸摸屏)

  答:注意,MiniGUI 通過采用不同的 IAL 引擎來支持不同平臺(tái)上的輸入設(shè)備。

  如果你用的是觸摸屏,則需要給自己的觸摸屏編寫一個(gè) IAL 引擎,

  就像 src/ial/ 目錄下的 ads、ipaq、vr4181 等一樣,然后在

  /etc/MiniGUI.cfg 中指定你 IAL 引擎:

  ial_engine=yourengine

  mdev 和 mtype 是 native ial engine 用來支持 PC 上的輸入設(shè)備的。

  對(duì)嵌入式系統(tǒng)沒有意義。

  8、如何讓我們自己的應(yīng)用程序在啟動(dòng)mginit后自動(dòng)執(zhí)行

  問:盡管版主說,數(shù)據(jù)存儲(chǔ)方式應(yīng)該不會(huì)成為問題,但是我不放心把所有涉及讀WORD的地方都 倒換過來,借用Helio.c作為我們的輸入引擎,mginit終于可以正常運(yùn)行在目標(biāo)板上(沒有鼠標(biāo)顯示)。但是mginit只是一個(gè)服務(wù)器,如何讓我們自己的應(yīng)用程序在啟動(dòng)mginit后自動(dòng)執(zhí)行(類似批處理),因?yàn)闊o鍵盤可輸入。

  第二觸摸屏上沒有顯示鼠標(biāo)箭頭,試著在配置時(shí)去掉disable-cursor,則在運(yùn)行時(shí)初始化鼠標(biāo)錯(cuò)。 答1:我想起來了,數(shù)據(jù)存儲(chǔ)方式應(yīng)該會(huì)影響文件的讀寫功能。

  比如對(duì) BMP、Cursor、ICON,以及 FONT 等的裝載功能。

  而程序內(nèi)部的東西,則應(yīng)該不會(huì)受到影響。

  啟動(dòng) mginit 之后,你可以 fork 并 exec 一個(gè)客戶程序。

  初始化鼠標(biāo)錯(cuò)誤,可能和鼠標(biāo)資源有關(guān)。

  答2:看來需要在所有涉及到文件讀寫的地方添加條件編譯,

  以便支持具有不同字節(jié)順序的系統(tǒng)。

  等 1.1.0Pre2 版本吧。呵呵。

  9、配置minigui時(shí)還有哪里需要disable或enable呢?

  問:現(xiàn)在minigui提供的demo都已用ppc_8xx-gcc編譯通過,但運(yùn)行不起來,報(bào)告如下錯(cuò)誤: Can't open /dev/tty: Device not configured

  GAL: Init GAL engine failure.

  Error in step 3: Can not initialize graphics engine!

  Initialize minigui failure when using /etc/MiniGUI.cfg as cfg file

  我的目標(biāo)板是一個(gè)嵌入式平臺(tái),沒有鍵盤,沒有鼠標(biāo),只有一個(gè)觸摸屏。

  在配置minigui時(shí)還有哪里需要disable或enable呢?

  答:一般而言,要做如下幾項(xiàng)工作:

  1. 如果是 1.0.07 以前的版本,請(qǐng)編輯 src/gal/native.h 文件,

  將 HAVETEXTMODE 設(shè)置為 0。同時(shí)使用 --enable-purefbgfx 選項(xiàng)配置。

  2. 如果是 1.0.07 以后的版本,--enable-purefbgfx 就夠了。

  3. 禁止 native ial engine:--disable-nativeial。

  4. 編寫自己的 ial engine,并打開。比如,如果你的系統(tǒng)是 iPAQ,則可以 直接使用 1.0.07 版本中的 ial engine,即使用 --enable-ipaqial。

  5. 編輯 /etc/MiniGUI.cfg,指定 ial_engine 為自己的引擎名稱。

  6. 關(guān)閉或者打開其他選項(xiàng)。

  比如,針對(duì) iPAQ 的配置命令可以是:

  ./configure --prefix=/home/projects/minigui-ipaq-bin/

  --disable-debug

  --disable-static

  --enable-purefbgfx

  --enable-nativegal

  --enable-ipaqial

  --disable-nativeial

  --disable-pcxsupport

  --disable-lbmsupport

  --disable-tgasupport

  --disable-jpgsupport

  --disable-pngsupport

  --disable-vbfsupport

  --disable-movewindowbymouse

  --disable-cursor

  --disable-imegb2312

  --disable-imegb2312pinyin

  --disable-savebitmap

  --disable-savescreen

  --disable-aboutdlg

  --disable-ext-fullgif

  --enable-tinyscreen

  、怎樣設(shè)置設(shè)置單行編輯框中光標(biāo)的位置

  問:能否設(shè)置單行編輯框中光標(biāo)的位置,怎樣設(shè)置?

  答:Edit 控件的功能和接口還不完善呢。

  許多東西都還沒有實(shí)現(xiàn),比如恢復(fù)、選中等等。

  按照設(shè)計(jì),插入符位置的修改是通過發(fā)送 EM_SCROLLCARET

  消息實(shí)現(xiàn)的。實(shí)現(xiàn)其他一些功能可能比較困難,但實(shí)現(xiàn)

  但實(shí)現(xiàn)一個(gè) EM_SCROLLCARET 消息的處理應(yīng)該不是很難。

  你能不能實(shí)現(xiàn)這個(gè)功能?

  可以參考 src/control/edit.c 中 MSG_KEYDOWN 和 MSG_LBUTTONDOWN 消息的處理。

【MINIGUI開發(fā)中遇到的問題和對(duì)應(yīng)學(xué)習(xí)方法】相關(guān)文章:

關(guān)于職場(chǎng)禮儀中遇到的問題07-30

網(wǎng)站改版中遇到的SEO問題總結(jié)11-13

面試中遇到問題及巧妙回答12-12

創(chuàng)業(yè)遇到困難和問題怎么辦?12-02

面試會(huì)遇到的問題11-15

面試遇到的待遇問題08-03

考研遇到的問題答案12-17

成都小升初面試中的一定會(huì)遇到的問題01-10

面試中的問題和回答12-05

速錄學(xué)習(xí)中會(huì)遇到哪些問題-關(guān)于速錄學(xué)習(xí)中的常見問題11-13