亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 基于 linux 和 minigui 的嵌入式系統軟件開發指南(三).htm

?? Programming Embedded Systems in C and C
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.pocketix.com/documents/tech/2001081001.htm -->
<HTML><HEAD><TITLE>基于 Linux 和 MiniGUI 的嵌入式系統軟件開發指南(三)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=en-us>
<META content="MSHTML 6.00.2719.2200" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><!--使鼠標指向鏈接顯示紅色和加上下劃線-->
<STYLE type=text/css>TD {
	FONT-SIZE: 10pt; LINE-HEIGHT: 19px; FONT-FAMILY: 宋體
}
P {
	FONT-SIZE: 10pt; FONT-FAMILY: 宋體
}
A:visited {
	FONT-SIZE: 10pt; FONT-FAMILY: 宋體; TEXT-DECORATION: none
}
A:link {
	FONT-SIZE: 10pt; FONT-FAMILY: 宋體; TEXT-DECORATION: none
}
A:hover {
	FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: "宋體"; TEXT-DECORATION: underline
}
</STYLE>
</HEAD>
<BODY leftMargin=6 topMargin=5>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=690 
borderColorLight=#000000 border=0>
  <TBODY>
  <TR>
    <TD vAlign=top align=left><IMG height=60 alt=logo 
      src="基于 Linux 和 MiniGUI 的嵌入式系統軟件開發指南(三).files/pocketix_com_logo.gif" 
      width=220 border=0></TD>
    <TD vAlign=center align=middle width=468>
      <SCRIPT language=JavaScript 
      src="基于 Linux 和 MiniGUI 的嵌入式系統軟件開發指南(三).files/demo_1_banner.js"></SCRIPT>
    </TD></TR></TBODY></TABLE></CENTER></DIV>
<DIV align=center>
<CENTER>
<TABLE height=15 cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="100%" background="" 
height=15></TD></TR></TBODY></TABLE></CENTER></DIV>
<DIV align=left>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR height=20>
    <TD width="100%"></TD></TR></TBODY></TABLE></DIV>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>
  <TBODY>
  <TR>
    <TD vAlign=top width="100%">
      <DIV align=center>
      <TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>
        <TBODY>
        <TR>
          <TD align=middle width="100%"><FONT size=3>基于 Linux 和 MiniGUI 
            的嵌入式系統軟件開發指南(三)<BR>對話框和控件編程&nbsp;<BR></FONT><FONT 
            color=#999999>2001-08-10 嵌入式Linux 報道</FONT></TD></TR>
        <TR>
          <TD vAlign=top align=middle width="100%">
            <HR SIZE=1>
          </TD></TR></TBODY></TABLE></DIV>
      <DIV align=center>
      <TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>
        <TBODY>
        <TR>
          <TD width="100%"><FONT face=宋體>&nbsp;&nbsp;&nbsp; 本文講述 MiniGUI 
            中的對話框和控件編程。首先講解 MiniGUI 中的控件類和控件實例的關系,并舉例說明控件子類化的概念及應用;其次講解 MiniGUI 
            對話框的編程技術,包括對話框模板的定義和對話框回調函數的編程;最后解釋模態對話框和非模態對話框之間的區別。</FONT> 
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; <A name=1><SPAN class=atitle2>1 
            引言</SPAN></A></FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 
            對話框編程是一個快速構建用戶界面的技術。通常,我們編寫簡單的圖形用戶界面時,可以通過調用 CreateWindow 
            函數直接創建所有需要的子窗口,即控件。但在圖形用戶界面比較復雜的情況下,每建立一個控件就調用一次 CreateWindow 
            函數,并傳遞許多復雜參數的方法很不可取。主要原因之一,就是程序代碼和用來建立控件的數據混在一起,不利于維護。為此,一般的 GUI 
            系統都會提供一種機制,利用這種機制,通過指定一個模板,GUI 系統就可以根據此模板建立相應的主窗口和控件。MiniGUI 
            也提供這種方法,通過建立對話框模板,就可以建立模態或者非模態的對話框。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 
            本文首先講解組成對話框的基礎,即控件的基本概念,然后講解對話模板的定義,并說明模態和非模態對話框之間的區別以及編程技術。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; <A name=2><SPAN class=atitle2>2 
            控件和控件類</SPAN></A></FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 
            許多人對控件(或者部件,widget)的概念已經相當熟悉了。控件可以理解為主窗口中的子窗口。這些子窗口的行為和主窗口一樣,即能夠接收鍵盤和鼠標等外部輸入,也可以在自己的區域內進行輸出――只是它們的所有活動被限制在主窗口中。MiniGUI 
            也支持子窗口,并且可以在子窗口中嵌套建立子窗口。我們將 MiniGUI 中的所有子窗口均稱為控件。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 在 Windows 或 X Window 
            中,系統會預先定義一些控件類,當利用某個控件類創建控件之后,所有屬于這個控件類的控件均會具有相同的行為和顯示。利用這些技術,可以確保一致的人機操作界面,而對程序員來講,可以像搭積木一樣地組建圖形用戶界面。MiniGUI 
            使用了控件類和控件的概念,并且可以方便地對已有控件進行重載,使得其有一些特殊效果。比如,需要建立一個只允許輸入數字的編輯框時,就可以通過重載已有編輯框而實現,而不需要重新編寫一個新的控件類。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 如果讀者曾經編寫過 Windows 
            應用程序的話,應該記得在建立一個窗口之前,必須確保系統中存在新窗口所對應的窗口類。在 Windows 
            中,程序所建立的每個窗口,都對應著某種窗口類。這一概念和面向對象編程中的類、對象的關系類似。借用面向對象的術語,Windows 
            中的每個窗口實際都是某個窗口類的一個實例。在 X Window 編程中,也有類似的概念,比如我們建立的每一個 Widget,實際都是某個 
            Widget 類的實例。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 
            這樣,如果程序需要建立一個窗口,就首先要確保選擇正確的窗口類,因為每個窗口類決定了對應窗口實例的表象和行為。這里的表象指窗口的外觀,比如窗口邊框寬度,是否有標題欄等等,行為指窗口對用戶輸入的響應。每一個 
            GUI 
            系統都會預定義一些窗口類,常見的有按鈕、列表框、滾動條、編輯框等等。如果程序要建立的窗口很特殊,就需要首先注冊一個窗口類,然后建立這個窗口類一個實例。這樣就大大提高了代碼的可重用性。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 在 MiniGUI 
            中,我們認為主窗口通常是一種比較特殊的窗口。因為主窗口代碼的可重用性一般很低,如果按照通常的方式為每個主窗口注冊一個窗口類的話,則會導致額外不必要的存儲空間,所以我們并沒有在主窗口提供窗口類支持。但主窗口中的所有子窗口,即控件,均支持窗口類(控件類)的概念。MiniGUI 
            提供了常用的預定義控件類,包括按鈕(包括單選鈕、復選鈕)、靜態框、列表框、進度條、滑塊、編輯框等等。程序也可以定制自己的控件類,注冊后再創建對應的實例。表 
            1 給出了 MiniGUI 預先定義的控件類和相應類名稱定義。</FONT></P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 表 1 MiniGUI 
            預定義的控件類和對應類名稱</FONT></P>
            <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1>
              <TBODY>
              <TR>
                <TD><FONT face=宋體>控件類</FONT></TD>
                <TD><FONT face=宋體>類名稱</FONT></TD>
                <TD><FONT face=宋體>宏定義</FONT></TD>
                <TD><FONT face=宋體>備注</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>靜態框</FONT></TD>
                <TD><FONT face=宋體>"static"</FONT></TD>
                <TD><FONT face=宋體>CTRL_STATIC</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>按鈕</FONT></TD>
                <TD><FONT face=宋體>"button"</FONT></TD>
                <TD><FONT face=宋體>CTRL_BUTTON</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>列表框</FONT></TD>
                <TD><FONT face=宋體>"listbox"</FONT></TD>
                <TD><FONT face=宋體>CTRL_LISTBOX</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>進度條</FONT></TD>
                <TD><FONT face=宋體>"progressbar"</FONT></TD>
                <TD><FONT face=宋體>CTRL_PRORESSBAR</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>滑塊</FONT></TD>
                <TD><FONT face=宋體>"trackbar"</FONT></TD>
                <TD><FONT face=宋體>CTRL_TRACKBAR</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>單行編輯框</FONT></TD>
                <TD><FONT face=宋體>"edit"、"sledit"</FONT></TD>
                <TD><FONT face=宋體>CTRL_EDIT、CTRL_SLEDIT</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>多行編輯框</FONT></TD>
                <TD><FONT face=宋體>"medit"、"mledit"</FONT></TD>
                <TD><FONT face=宋體>CTRL_MEDIT、CTRL_MLEDIT</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>工具條</FONT></TD>
                <TD><FONT face=宋體>"toolbar"</FONT></TD>
                <TD><FONT face=宋體>CTRL_TOOLBAR</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>菜單按鈕</FONT></TD>
                <TD><FONT face=宋體>"menubutton"</FONT></TD>
                <TD><FONT face=宋體>CTRL_MENUBUTTON</FONT></TD>
                <TD><FONT face=宋體>&nbsp;</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>樹型控件</FONT></TD>
                <TD><FONT face=宋體>"treeview"</FONT></TD>
                <TD><FONT face=宋體>CTRL_TREEVIEW</FONT></TD>
                <TD><FONT face=宋體>包含在 mgext 庫,即MiniGUI 擴展庫中。</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>月歷控件</FONT></TD>
                <TD><FONT face=宋體>"monthcalendar"</FONT></TD>
                <TD><FONT face=宋體>CTRL_MONTHCALENDAR</FONT></TD>
                <TD><FONT face=宋體>同上</FONT></TD></TR>
              <TR>
                <TD><FONT face=宋體>旋鈕控件</FONT></TD>
                <TD><FONT face=宋體>"spinbox"</FONT></TD>
                <TD><FONT face=宋體>CTRL_SPINBOX</FONT></TD>
                <TD><FONT face=宋體>同上</FONT></TD></TR></TBODY></TABLE>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 在 MiniGUI 中,通過調用 CreateWindow 
            函數,可以建立某個控件類的一個實例。控件類既可以是表 1 中預定義 MiniGUI 控件類,也可以是用戶自定義的控件類。與 
            CreateWindow 函數相關的幾個函數的原型如下(include/window.h):</FONT> 
            <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
            border=1>
              <TBODY>
              <TR>
                <TD><PRE><CODE><FONT face=宋體>
 904 HWND GUIAPI CreateWindowEx (const char* spClassName, const char* spCaption,
 905                   DWORD dwStyle, DWORD dwExStyle, int id, 
 906                   int x, int y, int w, int h, HWND hParentWnd, DWORD dwAddData);
 907 BOOL GUIAPI DestroyWindow (HWND hWnd);
 908 
 909 #define CreateWindow(class_name, caption, style, id, x, y, w, h, parent, add_data) \
 910         CreateWindowEx(class_name, caption, style, 0, id, x, y, w, h, parent, add_data)
</FONT></CODE></PRE></TD></TR></TBODY></TABLE>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; CreateWindow 
            函數建立一個子窗口,即控件。它指定了控件類、控件標題、控件風格,以及窗口的初始位置和大小。該函數同時指定子窗口的父窗口。CreateWindowEx 
            函數的功能和 CreateWindow 函數一致,不過,可以通過 CreateWindowEx 
            函數指定控件的擴展風格。DestroyWindow 函數用來銷毀用上述兩個函數建立的控件或者子窗口。</FONT> </P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 清單 1 
            中的程序,利用預定義控件類創建控件。其中hStaticWnd1 是建立在主窗口 hWnd 
            中的靜態框;hButton1、hButton2、hEdit1、hStaticWnd2則是建立在 hStaicWnd1 
            內部的幾個控件,并作為 hStaticWnd1 的子控件而存在,建立了兩個按鈕、一個編輯框和一個靜態按鈕;而 hEdit2 是 
            hStaicWnd2 的子控件,是 hStaticWnd1 的子子控件。</FONT> </P>
            <P><FONT face=宋體>&nbsp;&nbsp;&nbsp; 清單1 利用預定義控件類創建控件</FONT>
            <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
            border=1>
              <TBODY>
              <TR>
                <TD><PRE><CODE><FONT face=宋體>
#define IDC_STATIC1     100
#define IDC_STATIC2     150
#define IDC_BUTTON1     110
#define IDC_BUTTON2     120
#define IDC_EDIT1       130
#define IDC_EDIT2       140
int ControlTestWinProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
        static HWND hStaticWnd1, hStaticWnd2, hButton1, hButton2, hEdit1, hEdit2;
        switch (message) {
        case MSG_CREATE:
        {
            hStaticWnd1 = CreateWindow (CTRL_STATIC, 
                                        "This is a static control", 
                                        WS_CHILD | SS_NOTIFY | SS_SIMPLE | WS_VISIBLE | WS_BORDER,
                                        IDC_STATIC1, 
                                        10, 10, 180, 300, hWnd, 0);
            hButton1    = CreateWindow (CTRL_BUTTON,
                                        "Button1", 
                                        WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
                                        IDC_BUTTON1, 
                                        20, 20, 80, 20, hStaticWnd1, 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久精品| 麻豆国产精品视频| 国产精品色眯眯| 久久精品亚洲一区二区三区浴池| 欧美岛国在线观看| 欧美va亚洲va| 2021中文字幕一区亚洲| 精品国精品国产尤物美女| 久久久综合视频| 国产精品免费看片| 亚洲日韩欧美一区二区在线| 亚洲男人都懂的| 一区二区激情视频| 蜜臀精品久久久久久蜜臀| 琪琪一区二区三区| 国产美女在线精品| 不卡一区二区中文字幕| 一本高清dvd不卡在线观看 | 日韩欧美在线一区二区三区| 欧美一卡二卡三卡| 久久免费的精品国产v∧| 久久色中文字幕| ...av二区三区久久精品| 亚洲成人动漫精品| 精品午夜久久福利影院 | 亚洲欧洲精品一区二区精品久久久| 国产欧美日韩不卡免费| 一区二区视频在线| 狂野欧美性猛交blacked| 国产一区二区三区黄视频 | 成人av免费在线观看| 不卡一区二区中文字幕| 欧美日韩午夜影院| 国产拍欧美日韩视频二区| 亚洲精品成a人| 麻豆国产欧美一区二区三区| 不卡的av在线播放| 欧美一区二区网站| 中文字幕一区在线观看视频| 视频一区在线视频| 成人av网站免费观看| 欧美男男青年gay1069videost| 久久久精品tv| 天天免费综合色| 不卡av电影在线播放| 日韩一区二区三区观看| 亚洲日本在线a| 国产精品一区一区| 欧美精品视频www在线观看| 日本一二三不卡| 麻豆国产一区二区| 欧美视频中文字幕| 亚洲人123区| 粉嫩av亚洲一区二区图片| 日韩一区二区在线播放| 亚洲一区二区视频在线| 床上的激情91.| 久久天堂av综合合色蜜桃网| 日韩精品一二区| 日本国产一区二区| 一区在线中文字幕| 成人性生交大片免费看中文| 久久亚区不卡日本| 久久福利资源站| 日韩一区二区三区四区| 亚洲高清一区二区三区| 91福利精品第一导航| 中文字幕一区二区三区不卡在线| 国产成人综合亚洲91猫咪| 精品福利一区二区三区| 久久99国内精品| 日韩午夜中文字幕| 免费看黄色91| 欧美tickle裸体挠脚心vk| 蜜桃视频在线观看一区| 日韩视频一区在线观看| 免费一级片91| 欧美xfplay| 国产精品正在播放| 欧美国产一区在线| 成人sese在线| 亚洲男人电影天堂| 欧美日韩一区高清| 日韩和欧美一区二区三区| 6080午夜不卡| 精品一区二区三区蜜桃| 精品久久久网站| 国产成人精品三级| 国产精品国产馆在线真实露脸| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线免费亚洲电影| 亚洲成人精品在线观看| 这里只有精品99re| 国产一二三精品| 日韩美女久久久| 在线成人av网站| 国产乱码精品一区二区三区五月婷 | 69堂成人精品免费视频| 久久er精品视频| 国产精品国产a级| 欧美日韩一级大片网址| 精品中文av资源站在线观看| 欧美激情一区二区三区蜜桃视频 | 日韩精品一区二| 成人亚洲精品久久久久软件| 一区二区国产视频| 日韩你懂的在线观看| 国产suv精品一区二区883| 中文字幕视频一区二区三区久| 欧美日韩免费视频| 国产在线视视频有精品| 亚洲六月丁香色婷婷综合久久| 日韩无一区二区| 99久久伊人网影院| 蜜臀精品久久久久久蜜臀 | 欧美一激情一区二区三区| 高清日韩电视剧大全免费| 亚洲一区二区在线免费观看视频| 精品日本一线二线三线不卡| 色播五月激情综合网| 国产精品自拍在线| 亚欧色一区w666天堂| 国产精品久久久久久久久果冻传媒| 欧美精品第1页| 91视频免费观看| 韩国女主播一区| 视频一区在线视频| 亚洲精品视频在线| 欧美国产成人精品| 日韩精品中文字幕在线一区| 精品婷婷伊人一区三区三| 成人av电影免费观看| 精品在线观看视频| 日日摸夜夜添夜夜添亚洲女人| 18成人在线视频| 中文字幕乱码久久午夜不卡| 精品国产一区二区精华| 欧美精品在线视频| 欧美性视频一区二区三区| 99热精品一区二区| 不卡的电视剧免费网站有什么| 国产精品综合久久| 国产一区二区三区精品视频| 久久国产三级精品| 日本麻豆一区二区三区视频| 性做久久久久久久免费看| 亚洲欧美日韩国产中文在线| 亚洲欧洲精品一区二区三区不卡| 国产日韩精品视频一区| 久久综合色婷婷| 久久综合九色欧美综合狠狠| 精品日韩av一区二区| 久久夜色精品一区| 久久久久久电影| 中文av一区二区| 亚洲欧洲日韩在线| 亚洲综合一区二区精品导航| 亚洲午夜在线视频| 图片区小说区国产精品视频| 亚洲va韩国va欧美va| 偷窥少妇高潮呻吟av久久免费| 亚洲成av人片在www色猫咪| 亚洲风情在线资源站| 免费人成黄页网站在线一区二区| 日韩成人伦理电影在线观看| 六月丁香综合在线视频| 精品一区二区三区香蕉蜜桃| 国产99久久久久久免费看农村| 99精品视频一区二区| 欧美视频精品在线观看| 91精品国产全国免费观看| 精品对白一区国产伦| 国产精品麻豆欧美日韩ww| 亚洲欧美视频一区| 日韩主播视频在线| 国产在线精品免费av| av在线不卡观看免费观看| 欧洲精品在线观看| 白白色 亚洲乱淫| 波多野结衣亚洲一区| www.亚洲色图| 91久久精品国产91性色tv| 正在播放一区二区| 欧美国产精品v| 午夜精品久久久久久久久久久| 国产乱理伦片在线观看夜一区| 97久久超碰国产精品电影| 欧美欧美欧美欧美首页| 国产日韩av一区| 亚洲国产一区在线观看| 激情文学综合插| 在线亚洲免费视频| 久久一区二区三区国产精品| 一区二区三区免费网站| 国产精一区二区三区| 欧美日韩一区高清| 国产精品美女一区二区| 免费高清在线一区| 在线观看一区日韩| 日韩一区二区高清|