久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Windows32位匯編語言教程第9章9.4 使用Richedit控件(1) - 靈魂網(wǎng)絡(luò)

 chensirDSP 2010-05-31

 Richedit控件和Edit控件類似,,可以用于文本的輸入和編輯,。但兩者在功能上各有側(cè)重點(diǎn)。

Edit控件廣泛使用于對話框中,,用來供用戶輸入少量的文字,,因此加快速度和減少資源的占用是最重要的,各種高級編輯功能不是主要的,,所以Edit控件在短小精悍的同時(shí),,也存在諸多限制,最主要的就是在單行模式下,,能容納的文本不能超過32 KB,,在多行模式下也不能超過64 KB。

Richedit控件則側(cè)重于文字的高級編輯功能,,控件能夠容納的文本長度可以支持操作系統(tǒng)中的最大文件尺寸,并內(nèi)置了很多高級編輯器才具有的特征,,如多級的撤銷或重做,,向前或向后搜索,支持Unicode編輯等,,最重要的就是支持RTF(Rich Text Format)格式的帶段落格式的文本編輯,。由于實(shí)現(xiàn)這些功能的代碼比較復(fù)雜,所以Richedit控件的規(guī)模比較大,以至于Windows將它劃分出來以一個(gè)單獨(dú)的DLL庫文件方式提供,。

到目前為止,,Richedit控件總共有3個(gè)版本,這些版本的功能有所不同,,總的來說高版本包括了低版本的所有功能,,但在某些細(xì)節(jié)的實(shí)現(xiàn)上又有些不同,隨著版本的升高,,一些設(shè)置工作也隨之增多,,所以如果不需要某些特殊功能的話,使用最高的版本可能并不是最適合的,。

1.0版本的Richedit控件對應(yīng)的庫文件是Riched32.dll,,Windows 95只提供1.0版本,文件名中的32是32位版本的意思(不過并沒有一個(gè)Riched16.dll),。從Windows 98開始,,系統(tǒng)中多了一個(gè)2.0版本的Richedit控件,Windows 2000開始則有了3.0版本,。2.0版本和3.0 版本的庫文件名都是Riched20.dll,,同時(shí)Riched32.dll文件仍然存在于系統(tǒng)中,不過Riched20.dll文件名中的20總是讓人迷惑,,很多人第一次使用Richedit控件的時(shí)候誤認(rèn)為Riched32.dll的版本要比Riched20.dll的版本高,。

除了在功能上的不同,不同版本Richedit控件的類名稱也有所不同,,表9.4列出了3個(gè)版本之間的一些區(qū)別,。

表9.4 不同版本Richedit控件之間的區(qū)別

 

  1.0版本 2.0版本 3.0版本
DLL庫文件名 Riched32.dll Riched20.dll Riched20.dll
控件的類名 Richedit Richedit20A

Richedit20W
Richedit20A

Richedit20W
拖放編輯 支持 支持 支持
流輸入輸出 支持 支持 支持
Unicode編輯 不支持 支持 支持
非窗口操作 不支持 支持 支持
自動(dòng)URL識(shí)別 不支持 支持 支持
加速鍵 不支持 支持 支持
分行符 CR+LF CR CR(可模擬1.0版)
撤銷/重做 支持單級 支持多級 支持多級
文本搜索 向前搜索 向前/向后搜索 向前/向后搜索

表9.4中列出的僅是一些最重要的區(qū)別,很多細(xì)微的區(qū)別并沒有列出來,,比如每個(gè)版本都可以為文本設(shè)定下劃線,,但3.0版比2.0版又增加了點(diǎn)、劃,、劃-點(diǎn),、劃-點(diǎn)-點(diǎn)等多種樣式的下劃線。

Richedit控件的2.0版本和3.0 版本使用的控件名和類名是相同的,,有時(shí)候?yàn)榱耸褂媚承┌姹咎赜械墓δ?,需要預(yù)先檢測版本號,但Microsoft并沒有提供一個(gè)官方的檢測方法,,所以必須利用一些版本之間的區(qū)別來進(jìn)行檢測(這種方法好像在檢測不同的CPU),,比如,排版樣式功能(TYPOGRAPHY)是3.0版本才支持的,,設(shè)置排版樣式選項(xiàng)使用EM_SETTYPOGRAPHYOPTIONS消息,,如果排版樣式被設(shè)置后能夠再檢測到,,說明控件的版本肯定是3.0的,代碼如下:

invoke SendMessage,hwndRichEdit,EM_SETTYPOGRAPHYOPTIONS,\

  TO_SIMPLELINEBREAK,TO_SIMPLELINEBREAK

invoke SendMessage,hwndRichEdit,EM_GETTYPOGRAPHYOPTIONS,1,1

.if eax==0   ,;說明設(shè)置消息沒被處理,,版本是2.0版

  mov dwVersion,2

.else

   mov dwVersion,3

.endif

另外,也可以通過檢測操作系統(tǒng)來確定Richedit控件的版本,,如2.0版本在Windows 98和Windows NT 4.0中使用,,而Windows 2000使用的是3.0版本。

在本節(jié)中,,用一個(gè)簡單的例子來演示Richedit控件的使用,,包括如何創(chuàng)建控件、如何使用流操作裝入和輸出文件以及如何進(jìn)行文本查找等,,由于篇幅有限,,程序并沒有演示所有的高級編輯功能,程序代碼存放在所附光盤的Chapter09\Richedit目錄中,,其中匯編源代碼Richedit.asm文件的內(nèi)容如下

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多