成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件的可用性改善:善用幫助信息

開發(fā) 前端
通過設(shè)置 TTF_SUBCLASS 標(biāo)志,我們指示工具提示控件應(yīng)子類化我們的窗口以攔截鼠標(biāo)消息。這是一種靈活的方法,可以避免我們不得不使用 TTM_RELAYEVENT 消息手動(dòng)轉(zhuǎn)發(fā)鼠標(biāo)消息。

當(dāng)我們吭哧吭哧的開發(fā)功能性模塊的時(shí)候,也需要回頭思考一下軟件的可用性。今天的主題就是使用幫助信息來改善軟件的可用性,讓軟件不僅”能用”,也更”好用”。

幫助信息,也叫工具提示(Tooltip)。當(dāng)用戶的鼠標(biāo)懸停在一段文字或者控件上時(shí),會(huì)自動(dòng)顯示相關(guān)的幫助信息。例如,如果一個(gè)控件上的字符串沒有足夠的控件顯示,當(dāng)鼠標(biāo)懸停在控件上時(shí),可以通過工具提示來顯示完整的字符串。

實(shí)現(xiàn)工具提示的一個(gè)關(guān)鍵點(diǎn)是對(duì) TTN_SHOW 通知消息的處理,此消息可以用來在工具提示顯示之前設(shè)置它的顯示位置。
另外一個(gè)要處理的消息是 TTM_ADJUSTRECT,它可以用來設(shè)置工具提示的精確顯示位置。

下面是一段例子代碼,其中添加了對(duì)工具提示的支持。

代碼解析

我們聲明了一些變量之后,我們來深入看看創(chuàng)建窗口的過程。首先,我們調(diào)用 CreateWindowEx 創(chuàng)建工具提示窗口,將主窗口設(shè)置為工具提示窗口的所有者(這一點(diǎn)對(duì)于獲得正確的 Z 順序行為非常重要)。

然后,我們獲取字體并將其設(shè)置到工具提示控件中,以便工具提示以與我們相同的字體呈現(xiàn)。

然后,我們測量目標(biāo)字體中的文本,并將 g_rcText 矩形設(shè)置為該文本的尺寸。我們使用該矩形在工具提示控件中建立工具的邊界。

通過設(shè)置 TTF_SUBCLASS 標(biāo)志,我們指示工具提示控件應(yīng)子類化我們的窗口以攔截鼠標(biāo)消息。這是一種靈活的方法,可以避免我們不得不使用 TTM_RELAYEVENT 消息手動(dòng)轉(zhuǎn)發(fā)鼠標(biāo)消息。

繪制工具提示就比較簡單了,我們只需要選擇字體和繪制文本就可以了。

運(yùn)行這個(gè)例子,我們將鼠標(biāo)懸停在文本上。我們可以看到工具提示會(huì)顯示出來,但它顯示到了錯(cuò)誤的位置。
不過,除此之外,事情正在按預(yù)期進(jìn)行。工具提示具有正確的字體,僅當(dāng)鼠標(biāo)懸停在文本本身上時(shí)觸發(fā),當(dāng)鼠標(biāo)離開文本時(shí)關(guān)閉。讓我們來解決工具提示顯示位置的問題,代碼如下圖所示:

TTN_SHOW 通知消息在即將顯示工具提示時(shí)發(fā)送。我們通過將文本矩形映射到屏幕坐標(biāo)并使用 TTM_ADJUSTRECT 消息擴(kuò)展矩形以包含工具提示控件將在文本周圍放置的所有邊距和邊框來響應(yīng)通知。
這樣,當(dāng)我們將工具提示放置在該位置時(shí),邊距和邊框會(huì)精確匹配,并且文本將顯示在所需位置。
返回 TRUE 以向工具提示控件指示我們已負(fù)責(zé)定位窗口,并且它不應(yīng)執(zhí)行其默認(rèn)定位,這一點(diǎn)很重要。

我們再次運(yùn)行例子程序,你會(huì)發(fā)現(xiàn)還有另一個(gè)問題:工具提示動(dòng)畫仍在進(jìn)行,如果動(dòng)畫是幻燈片動(dòng)畫,則尤其會(huì)分散注意力。這很容易解決:調(diào)整我們創(chuàng)建工具提示控件的方式。

TTS_NOANIMATE 樣式可以用來禁止動(dòng)畫,這意味著工具提示只是彈出來并不再顯示動(dòng)畫,這正是我們想要的。

大功告成!

以上就是實(shí)現(xiàn)工具提示的基礎(chǔ)知識(shí)。
當(dāng)然,可能你想處理更多細(xì)節(jié),例如僅在字符串被剪切時(shí)才顯示工具提示。但是這些問題與工具提示無關(guān),因此我不會(huì)在這里討論它們,可能在以后的時(shí)間我們會(huì)來探討這個(gè)問題。

總結(jié)

如果時(shí)常以用戶的角度來使用軟件,你會(huì)發(fā)現(xiàn):工具提示真的是一個(gè)十分十分好用的特性。
那么,現(xiàn)在立即就在你的軟件里加上這個(gè)功能吧!

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2024-08-13 15:42:19

2024-09-27 17:58:11

2022-05-19 09:42:16

數(shù)據(jù)庫存儲(chǔ)分布式數(shù)據(jù)庫

2009-12-25 18:14:06

惠普實(shí)時(shí)策略電信

2009-12-25 09:36:22

惠普電信行業(yè)

2012-09-07 09:57:14

2024-02-27 09:48:25

Redis集群數(shù)據(jù)庫

2012-02-13 23:20:18

linux集群高可用

2017-08-24 17:05:06

2012-07-04 11:21:07

OpenStack

2013-11-19 17:13:52

關(guān)鍵業(yè)務(wù)軟件定義

2013-11-19 17:50:33

Linux輔助軟件

2009-04-16 15:34:35

SQL Server

2011-02-17 08:49:49

WebHTMLCSS

2014-05-14 09:43:01

SUSE私有云

2013-08-28 10:30:39

vSphere

2012-09-04 13:43:31

SQL Server

2021-05-24 09:15:42

Go熔斷熔斷器

2011-02-18 17:54:36

網(wǎng)站首頁 PET

2013-12-04 09:52:50

hadoop
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 鲁视频| 福利视频网 | 伊人免费在线观看高清 | 国产婷婷综合 | 91色网站| 在线视频成人 | 国产亚洲欧美在线 | 日韩在线中文字幕 | 成人婷婷| 日本欧美视频 | 国产视频黄色 | 国产精品美女久久久久久久网站 | 99re免费| 国产亚洲网站 | 男人的天堂在线视频 | 91夜色在线观看 | 亚洲一区二区三区欧美 | 国产精品呻吟久久av凹凸 | 成人在线观看网址 | 亚洲成人动漫在线观看 | 国产一区二区视频在线观看 | 国精产品一区二区三区 | 91成人在线 | 免费精品视频在线观看 | 日韩欧美成人精品 | 91精品国产色综合久久不卡蜜臀 | 欧美日在线 | 久久国内精品 | 欧美一区二区在线 | 日韩在线视频免费观看 | 欧美日韩亚洲国产综合 | 欧美一级做性受免费大片免费 | 国产不卡在线 | 国产精品综合视频 | 中文字幕 在线观看 | 国产三区在线观看视频 | 一级片免费在线观看 | 亚洲一区二区三区四区五区中文 | 欧美一级在线观看 | 精产国产伦理一二三区 | 中文字幕高清一区 |