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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 基于 linux 和 minigui 的嵌入式系統(tǒng)軟件開發(fā)指南(二).htm

?? 詳細(xì)的介紹了minigui的原理及其在linux上的實(shí)現(xiàn).
?? HTM
?? 第 1 頁 / 共 4 頁
字號(hào):
        <TBODY>
        <TR><!-- Sidebar Gutter -->
          <TD width=8><IMG height=21 alt="" 
            src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" width=5></TD>
          <TD width=160><!-- Start TOC -->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/bg-gold.gif" 
                height=5><B>內(nèi)容:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                width=160></TD></TR>
              <TR>
                <TD align=right>
                  <TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#1">引言</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#2">消息和消息循環(huán)</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#3">幾個(gè)重要的消息處理函數(shù)</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#4">MiniGUI-Threads 
                        和 MiniGUI-Lite 在消息處理上的不同</A> </TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#5">窗口的建立和銷毀</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#6">幾個(gè)重要消息</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#7">Hello, 
                        World</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#8">小結(jié)</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#author1">關(guān)于作者</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End TOC --><!-- Start Related Content Area -->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/bg-gold.gif" 
                height=5><B>相關(guān)內(nèi)容:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                width=160></TD></TR>
              <TR>
                <TD align=right>
                  <TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part1/index.shtml">主題一:選擇MiniGUI-Threads 
                        或者 MiniGUI-Lite</A> 
            </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End Related dW Content Area -->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=150 bgColor=#000000 colSpan=2 height=2><IMG height=2 
                  alt="" src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                  width=160></TD></TR>
              <TR>
                <TD width=150 bgColor=#ffffff colSpan=2 height=2><IMG height=2 
                  alt="" src="基于 Linux 和 MiniGUI 的嵌入式系統(tǒng)軟件開發(fā)指南(二).files/c.gif" 
                  width=160></TD></TR></TBODY></TABLE><!-- END STANDARD SIDEBAR AREA --></TD></TR></TBODY></TABLE><!-- START SUBTITLE AND CONTENT --><SPAN 
      class=atitle2>主題二:理解消息循環(huán)和窗口過程</SPAN> 
      <P><A 
      href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part2/index.shtml#author1">魏永明</A> 
      (<A 
      href="mailto:ymwei@minigui.org">ymwei@minigui.org</A>)<BR>自由撰稿人<BR>2001 年 
      7 月</P>
      <BLOCKQUOTE>在利用 MiniGUI 開發(fā)應(yīng)用程序之前,首先要理解的兩個(gè)概念就是消息循環(huán)和窗口過程。消息循環(huán)是事件驅(qū)動(dòng)的 GUI 
        編程之基礎(chǔ)。而窗口則是圖形用戶界面的最基本交互元素。本文描述了 MiniGUI 中與消息相關(guān)的幾個(gè)重要函數(shù),也描述了 
        MiniGUI-Threads 和 MiniGUI-Lite 在消息循環(huán)實(shí)現(xiàn)上的幾個(gè)不同。本文還講述了在 MiniGUI 
        中的窗口建立和銷毀過程,并解釋了窗口過程的概念以及對(duì)一些重要消息的處理。</BLOCKQUOTE>
      <P><A id=1 name=1><SPAN class=atitle2>引言</SPAN></A><BR>我們知道,流行的 GUI 
      編程都有一個(gè)重要的概念與之相關(guān),即"事件驅(qū)動(dòng)編程"。事件驅(qū)動(dòng)的含義就是,程序的流程不再是只有一個(gè)入口和若干個(gè)出口的串行執(zhí)行線路;相反,程序會(huì)一直處于一個(gè)循環(huán)狀態(tài),在這個(gè)循環(huán)當(dāng)中,程序從外部輸入設(shè)備獲取某些事件,比如用戶的按鍵或者鼠標(biāo)的移動(dòng),然后根據(jù)這些事件作出某種的響應(yīng),并完成一定的功能,這個(gè)循環(huán)直到程序接受到某個(gè)消息為止。"事件驅(qū)動(dòng)"的底層設(shè)施,就是常說的"消息隊(duì)列"和"消息循環(huán)"。本文將具體描述 
      MiniGUI 中用來處理消息的幾個(gè)重要函數(shù),并描述 MiniGUI-Threads 和 MiniGUI-Lite 
      在消息循環(huán)實(shí)現(xiàn)上的一些不同。</P>
      <P>窗口是 MiniGUI 當(dāng)中最基本的 GUI 
      元素,一旦窗口建立之后,窗口就會(huì)從消息隊(duì)列當(dāng)中獲取屬于自己的消息,然后交由它的窗口過程進(jìn)行處理。這些消息當(dāng)中,有一些是基本的輸入設(shè)備事件,而有一些則是與窗口管理相關(guān)的邏輯消息。本文將講述 
      MiniGUI 中的窗口建立和銷毀過程,并解釋了窗口過程的概念以及對(duì)一些重要消息的處理。</P>
      <P><A id=2 name=2><SPAN class=atitle2>2 消息和消息循環(huán)</SPAN></A><BR>在 MiniGUI 
      中,消息被如下定義(include/window.h):</P>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>352 typedef struct _MSG
 353 {
 354     HWND             hwnd;
 355     int              message;
 356     WPARAM           wParam;
 357     LPARAM           lParam;
 358 #ifdef _LITE_VERSION
 359     unsigned int     time;
 360 #else
 361     struct timeval   time;
 362 #endif
 363     POINT            pt;
 364 #ifndef _LITE_VERSION
 365     void*            pAdd;
 366 #endif
 367 }MSG;
 368 typedef MSG* PMSG;
</CODE>
</PRE></TD></TR></TBODY></TABLE><BR><BR>
      <P>一個(gè)消息由該消息所屬的窗口(hwnd)、消息編號(hào)(message)、消息的 WPARAM 型參數(shù)(wParam)以及消息的 LPARAM 
      型參數(shù)(lParam)組成。消息的兩個(gè)參數(shù)中包含了重要的內(nèi)容。比如,對(duì)鼠標(biāo)消息而言,lParam 中一般包含鼠標(biāo)的位置信息,而 wParam 
      參數(shù)中則包含發(fā)生該消息時(shí),對(duì)應(yīng)的 SHIFT 鍵的狀態(tài)信息等。對(duì)其他不同的消息類型來講,wParam 和 lParam 
      也具有明確的定義。當(dāng)然,用戶也可以自定義消息,并定義消息的 wParam 和 lParam 意義。為了用戶能夠自定義消息,MiniGUI 定義了 
      MSG_USER 宏,可如下定義自己的消息:</P>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>#define MSG_MYMESSAGE1  (MSG_USER + 1)
#define MSG_MYMESSAGE2  (MSG_USER + 2)
</CODE>
</PRE></TD></TR></TBODY></TABLE>用戶可以在自己的程序中使用自定義消息,并利用自定義消息傳遞數(shù)據(jù)。<BR><BR>
      <P>在理解消息之后,我們看消息循環(huán)。簡而言之,消息循環(huán)就是一個(gè)循環(huán)體,在這個(gè)循環(huán)體中,程序利用 GetMessage 
      函數(shù)不停地從消息隊(duì)列中獲得消息,然后利用 DispatchMessage 
      函數(shù)將消息發(fā)送到指定的窗口,也就是調(diào)用指定窗口的窗口過程,并傳遞消息及其參數(shù)。典型的消息循環(huán)如下所示:</P>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>while (GetMessage (&amp;Msg, hMainWnd)) {
       TranslateMessage (&amp;Msg);
       DispatchMessage (&amp;Msg);
}
</CODE>
</PRE></TD></TR></TBODY></TABLE>如上所示,GetMessage 函數(shù)從 hMainWnd 
      窗口所屬的消息隊(duì)列當(dāng)中獲得消息,然后調(diào)用 TranslateMessage 函數(shù)將 MSG_KEYDOWN 和 MSG_KEYUP 消息翻譯成 
      MSG_CHAR 消息,最后調(diào)用 DispatchMessage 函數(shù)將消息發(fā)送到指定的窗口。<BR><BR>
      <P>在 MiniGUI-Threads 版本中,每個(gè)建立有窗口的 GUI 
      線程有自己的消息隊(duì)列,而且,所有屬于同一線程的窗口共享同一個(gè)消息隊(duì)列。因此,GetMessage 函數(shù)將獲得所有與 hMainWnd 
      窗口在同一線程中的窗口的消息。</P>
      <P>而在 MiniGUI-Lite 版本中,只有一個(gè)消息隊(duì)列,GetMessage 將從該消息隊(duì)列當(dāng)中獲得所有的消息,而忽略 hMainWnd 
      參數(shù)。</P>
      <P><A id=3 name=3><SPAN class=atitle2>3 幾個(gè)重要的消息處理函數(shù)</SPAN></A><BR>除了上面提到的 
      GetMessage 和 TranslateMessage、DispatchMessage 函數(shù)以外,MiniGUI 
      支持如下幾個(gè)消息處理函數(shù)。</P>
      <P><B>PostMessage:</B>該函數(shù)將消息放到指定窗口的消息隊(duì)列后立即返回。這種發(fā)送方式稱為"郵寄"消息。如果消息隊(duì)列中的郵寄消息緩沖區(qū)已滿,則該函數(shù)返回錯(cuò)誤值。在下一個(gè)消息循環(huán)中,由 
      GetMessage 函數(shù)獲得這個(gè)消息之后,窗口才會(huì)處理該消息。PostMessage 一般用于發(fā)送一些非關(guān)鍵性的消息。比如在 MiniGUI 
      中,鼠標(biāo)和鍵盤消息就是通過 PostMessage 函數(shù)發(fā)送的。</P>
      <P><B>SendMessage:</B>該函數(shù)和 PostMessage 
      函數(shù)不同,它在發(fā)送一條消息給指定窗口時(shí),將等待該消息被處理之后才會(huì)返回。當(dāng)需要知道某個(gè)消息的處理結(jié)果時(shí),使用該函數(shù)發(fā)送消息,然后根據(jù)其返回值進(jìn)行處理。在 
      MiniGUI-Threads 
      當(dāng)中,如果發(fā)送消息的線程和接收消息的線程不是同一個(gè)線程,發(fā)送消息的線程將阻塞并等待另一個(gè)線程的處理結(jié)果,然后繼續(xù)運(yùn)行;否則,SendMessage 
      函數(shù)將直接調(diào)用接收消息窗口的窗口過程函數(shù)。MiniGUI-Lite 則和上面的第二種情況一樣,直接調(diào)用接收消息窗口的窗口過程函數(shù)。</P>
      <P><B>SendNotifyMessage:</B>該函數(shù)和 PostMessage 消息類似,也是不等待消息被處理即返回。但和 
      PostMessage 
      消息不同,通過該函數(shù)發(fā)送的消息不會(huì)因?yàn)榫彌_區(qū)滿而丟失,因?yàn)橄到y(tǒng)采用鏈表的形式處理這種消息。通過該函數(shù)發(fā)送的消息一般稱為"通知消息",一般用來從控件向其父窗口發(fā)送通知消息。</P>
      <P><B>PostQuitMessage:</B>該消息在消息隊(duì)列中設(shè)置一個(gè) QS_QUIT 標(biāo)志。GetMessage 
      在從指定消息隊(duì)列中獲取消息時(shí),會(huì)檢查該標(biāo)志,如果有 QS_QUIT 標(biāo)志,GetMessage 消息將返回 
      FALSE,從而可以利用該返回值終止消息循環(huán)。</P>
      <P><A id=4 name=4><SPAN class=atitle2>4 MiniGUI-Threads 和 MiniGUI-Lite 
      在消息處理上的不同</SPAN></A><BR>表 1 總結(jié)了 MiniGUI-Threads 和 MiniGUI-Lite 
      在消息處理上的不同</P>
      <P>表 1 MiniGUI-Threads 和 MiniGUI-Lite 在消息處理上的不同</P>
      <TABLE cellSpacing=0 cellPadding=5 border=1>
        <TBODY>
        <TR>
          <TD></TD>
          <TD>MiniGUI-Threads</TD>
          <TD>MiniGUI-Lite</TD></TR>
        <TR>
          <TD>多消息隊(duì)列</TD>
          <TD>每個(gè)創(chuàng)建窗口的線程擁有獨(dú)立的消息隊(duì)列</TD>
          <TD>只有一個(gè)消息隊(duì)列。所有窗口共享一個(gè)消息隊(duì)列。除非嵌套消息循環(huán),否則一個(gè)程序中只有一個(gè)消息循環(huán)。</TD></TR>
        <TR>
          <TD>內(nèi)建多線程處理</TD>
          <TD>是。可以自動(dòng)處理跨線程的消息傳遞</TD>
          <TD>不能。從一個(gè)線程向另外一個(gè)線程發(fā)送或者郵寄消息時(shí),必須通過互斥處理保護(hù)消息隊(duì)列。</TD></TR>
        <TR>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲一区二区在线| 国产精品原创巨作av| 欧美这里有精品| 亚洲一卡二卡三卡四卡| 欧美午夜精品一区二区三区| 亚洲国产另类av| 日韩丝袜情趣美女图片| 蜜臀精品一区二区三区在线观看 | 中文字幕在线一区免费| www.亚洲色图| 亚洲电影一级片| 日韩视频在线你懂得| 国产iv一区二区三区| 最近中文字幕一区二区三区| 欧美日韩国产首页| 青青草国产精品亚洲专区无| 久久久久久99精品| 91丨九色丨蝌蚪丨老版| 图片区小说区国产精品视频| 精品播放一区二区| 不卡高清视频专区| 日韩经典中文字幕一区| 国产人妖乱国产精品人妖| 91亚洲大成网污www| 午夜国产精品影院在线观看| 国产日韩欧美不卡在线| 91日韩一区二区三区| 美腿丝袜在线亚洲一区| 国产精品久久夜| 538在线一区二区精品国产| 国产高清亚洲一区| 亚洲一区中文日韩| 久久久久久99久久久精品网站| 欧美中文字幕一二三区视频| 国产伦精品一区二区三区视频青涩| 夜夜嗨av一区二区三区| 久久久99免费| 欧美理论在线播放| 成人av资源站| 黄页视频在线91| 亚洲一区二区精品3399| 国产精品免费网站在线观看| 日韩一区二区三区四区五区六区| 91天堂素人约啪| 国产精品一区二区视频| 日本不卡视频在线| 亚洲视频资源在线| 2022国产精品视频| 欧美日韩三级一区| av高清不卡在线| 精品一区二区在线看| 亚洲影院在线观看| 136国产福利精品导航| 亚洲精品在线一区二区| 欧美丰满一区二区免费视频| 日本精品裸体写真集在线观看| 国产69精品久久久久777| 日韩电影在线观看网站| 亚洲风情在线资源站| 亚洲欧洲另类国产综合| 欧美国产日韩一二三区| 久久人人超碰精品| 精品国产一区二区亚洲人成毛片 | 日本女人一区二区三区| 亚洲永久精品大片| 亚洲天堂网中文字| 中文字幕制服丝袜一区二区三区| 国产女人18水真多18精品一级做| 日韩精品在线一区| 日韩一区二区在线观看视频| 在线电影一区二区三区| 欧美男生操女生| 欧美伦理电影网| 欧美巨大另类极品videosbest | 一本到高清视频免费精品| 成人的网站免费观看| 国产不卡免费视频| 成人免费毛片片v| 丁香激情综合国产| 国产成人免费在线| 高清国产一区二区三区| 高清av一区二区| 白白色 亚洲乱淫| 92精品国产成人观看免费| 波多野洁衣一区| 色综合天天性综合| 欧美在线啊v一区| 欧美日韩国产123区| 日韩欧美电影一区| 精品国产一区二区三区久久影院| 国产亚洲精品免费| 国产精品美女一区二区三区| 亚洲乱码中文字幕| 亚洲一区在线观看免费观看电影高清| 亚洲午夜激情av| 蜜臀精品久久久久久蜜臀| 国产在线观看一区二区| 成人免费毛片片v| 91久久免费观看| 欧美一区二区免费观在线| 91精品国产欧美日韩| 久久综合给合久久狠狠狠97色69| 欧美激情综合网| 亚洲男人电影天堂| 首页亚洲欧美制服丝腿| 精品一区二区免费在线观看| 国产精品66部| 色又黄又爽网站www久久| 欧美日韩国产精品自在自线| 欧美电影免费观看高清完整版在线| 精品日韩欧美一区二区| 国产精品国产三级国产专播品爱网| 亚洲欧美激情视频在线观看一区二区三区| 亚洲一区二区精品久久av| 久久99深爱久久99精品| 91麻豆123| 日韩一区二区三区电影在线观看| 国产精品美女久久久久久久| 午夜精品福利一区二区蜜股av| 国产不卡一区视频| 欧美美女一区二区在线观看| 国产农村妇女毛片精品久久麻豆 | 午夜国产精品影院在线观看| 国产成人日日夜夜| 欧美视频完全免费看| 久久免费的精品国产v∧| 一区二区三区四区av| 激情深爱一区二区| 欧美亚洲综合在线| 欧美国产视频在线| 美女网站在线免费欧美精品| 色综合天天狠狠| 欧美韩国一区二区| 蜜桃免费网站一区二区三区| 91福利视频在线| 中文字幕精品一区二区精品绿巨人 | 日韩三级视频在线看| 中文一区一区三区高中清不卡| 青青草国产成人99久久| 色婷婷综合激情| 国产精品免费久久久久| 国内精品伊人久久久久av影院 | 91免费国产视频网站| 26uuu色噜噜精品一区| 天堂一区二区在线免费观看| 91一区在线观看| 国产精品成人免费精品自在线观看| 激情深爱一区二区| 日韩三级伦理片妻子的秘密按摩| 亚洲国产精品一区二区久久恐怖片 | 国产一区在线不卡| 这里只有精品视频在线观看| 亚洲精品福利视频网站| 成人午夜激情在线| 久久嫩草精品久久久精品| 蜜桃视频在线观看一区二区| 欧美精品日日鲁夜夜添| 亚洲一区二区在线播放相泽| 一本大道av伊人久久综合| 综合av第一页| 国产99久久久精品| 久久精品视频一区二区三区| 日韩成人av影视| 日韩视频在线永久播放| 三级欧美在线一区| 欧美日韩国产中文| 亚洲成人动漫av| 欧美日韩国产一级| 婷婷中文字幕综合| 91麻豆精品国产无毒不卡在线观看| 亚洲高清免费在线| 欧美日韩国产片| 麻豆精品久久久| 久久亚洲欧美国产精品乐播| 国产精品一级片在线观看| 国产视频一区在线播放| 国产成人午夜精品5599| 欧美国产日韩亚洲一区| 91亚洲精品一区二区乱码| 亚洲视频一区在线观看| 色呦呦国产精品| 日韩激情中文字幕| 欧美不卡一区二区三区| 国产精品99久久久久久久女警| 亚洲国产精品精华液2区45| www.成人在线| 亚洲国产欧美在线人成| 日韩欧美一级二级三级| 国产剧情一区二区| 《视频一区视频二区| 欧美日韩亚洲不卡| 久久国产夜色精品鲁鲁99| 久久综合999| 99视频一区二区| 天天av天天翘天天综合网| 2021中文字幕一区亚洲| 91在线小视频| 人禽交欧美网站| 国产精品你懂的在线欣赏| 欧美在线视频全部完|