翻譯《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

What's the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20071025-00/?p=24693

Raymond Chen?2007年10月25日


簡要

文章討論了EM_SETHILITEEM_GETHILITE消息在文檔中顯示為“未實現”的原因。這些消息最初在2002年為面包屑欄設計,但隨著面包屑欄設計的變更,這些消息的功能被移除,消息編號被保留以避免構建失敗。文章強調了同時開發庫及其客戶端時的現實問題,即在進行重大更改時需要分階段進行,以確保所有客戶端能順利過渡。盡管這些消息現在沒有效果,但它們仍然存在于公共頭文件中,因為公共頭文件不允許更改。

正文

????????如果你查閱EM_SETHILITEEM_GETHILITE消息的文檔,它們只會顯示“未實現”。這是怎么回事?

????????EM_SETHILITEEM_GETHILITE消息是在2002年為面包屑欄添加的。在那個時代,面包屑欄并不是你在Windows Vista中看到的樣子,一系列帶有下拉箭頭的按鈕,每個按鈕代表層次結構中的一個級別。那時候的面包屑欄只是一個外觀華麗的地址欄(即,一個編輯控件)。面包屑欄不會為層次結構中的每個級別都有一個按鈕,而是如果你將鼠標懸停在路徑組件上(或使用鍵盤選擇它),它就會高亮顯示該路徑組件。面包屑欄沒有下拉箭頭,而是等待你將鼠標懸停,高亮的路徑會自動展開以顯示同級項目的菜單。

????????面包屑欄的設計改變了,那個“外觀華麗的地址欄”設計被放棄了。EM_SETHILITEEM_GETHILITE消息的功能被移除,但是為了避免在有人使用這些消息的情況下造成構建失敗,消息編號被保留了下來。當然這些消息現在沒有任何效果了,但至少產品仍然可以構建。使用這些消息的人可以按照自己的時間表逐漸放棄它們。

????????這是同時開發庫及其客戶端的一個現實問題。如果你是負責庫的人,并且你打算進行重大更改,你必須分階段進行,以便所有的客戶端都能順利過渡。你不能自己更改所有的客戶端,因為它們不屬于你更改的范圍,你可能也無法訪問源代碼。客戶端屬于其他團隊,甚至其他公司。你必須與這些其他團隊協調,并讓他們知道你的過渡計劃,以便他們可以將其納入自己的時間表。

????????EM_GETHILITEEM_SETHILITE消息仍然存在的事實只是從未被清理的遺留污垢。現在頭文件中的內容是過渡計劃的倒數第二階段。最后階段本應是完全從頭文件中移除這些消息,但是“不允許對公共頭文件進行更改”的截止日期在最后階段執行之前就到了,現在這些消息在一個公共頭文件中,它們必須永遠保留在那里。即使它們什么也不做。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15767.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端 JS 經典:Web 性能指標

什么是性能指標:Web Performance Metrics 翻譯成 Web 性能指標,一般和時間有關系,在短時間內做更多有意義的事情。 一個站點表現得好與不好,標準在于用戶體驗,而用戶體驗好不好,有一套 RAIL 模型來衡量。這…

大專學歷java能找到工作嗎

就低學歷就業的情況,大專學歷的職業上限基本上是中小公司的開發小組長,中專或同等學歷的職業上限一般是軟件小作坊的項目經理。當下大專學歷能進大公司的可能性不能說沒,但相比前幾年,少了太多。有穩定業務渠道的軟件公司&#xf…

Vue.js功能實現博客

Vue.js功能實現博客 一、前言 Vue.js 是一款構建用戶界面的漸進式框架。今天我們將通過一個簡單的示例來展示如何使用 Vue.js 創建一個簡單的計數器功能,并在此過程中解釋每個步驟。 二、環境準備 在開始之前,請確保你的開發環境中已經安裝了 Node.j…

音視頻學習規劃

文章目錄 概述閑聊點 小結 概述 最近在學習音視頻,覺得還是要先寫個提綱,給自己制定下學習路線及目標。先寫下我的個人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒體RTMP,HLS 閑聊點 先說下學習命令行吧,學習命令行是為了…

GitHub的原理及應用詳解(六)

本系列文章簡介: GitHub是一個基于Git版本控制系統的代碼托管平臺,為開發者提供了一個方便的協作和版本管理的工具。它廣泛應用于軟件開發項目中,包括但不限于代碼托管、協作開發、版本控制、錯誤追蹤、持續集成等方面。 GitHub的原理可以簡單…

Spring Cloud 項目在網關聚合 Swagger 文檔

文章目錄 Spring Cloud 項目在網關聚合 Swagger 文檔各個微服務的改動改動一:新增依賴改動二:新增配置類關鍵項說明 Gateway 的改動改動一:新增依賴改動二:新增配置類和處理類改動三:改動配置文件 Spring Cloud 項目在…

一千題,No.0026(Ternary String)

描述 You are given a string s such that each its character is either 1, 2, or 3. You have to choose the shortest contiguous substring of s such that it contains each of these three characters at least once. A contiguous substring of string s is a string …

Python3 筆記:IDLE的幾個基本設置

1、設置字體: Options > Configure IDLE > Fonts 2、設置文字顏色(設置高亮): Options > Configure IDLE > Highlights 3、設置背景顏色: Options > Configure IDLE > Highlights 4、設置窗口&a…

各位數字和-第13屆藍橋杯選拔賽Python真題精選

[導讀]:超平老師的Scratch藍橋杯真題解讀系列在推出之后,受到了廣大老師和家長的好評,非常感謝各位的認可和厚愛。作為回饋,超平老師計劃推出《Python藍橋杯真題解析100講》,這是解讀系列的第72講。 各位數字和&#…

MongoDB(介紹,安裝,操作,Springboot整合MonggoDB)

目錄 MongoDB 1 MongoDB介紹 MongoDB簡介 MongoDB的特點 MongoDB使用場景 小結 2 MongoDB安裝 安裝MongoDB 連接MongoDB MongoDB邏輯結構 MongoDB數據類型 小結 3 MongoDB操作 操作庫和集合 操作文檔-增刪改 操作文檔-查詢 MongoDB索引 小結 4 SpringBoot整合…

c# sqlite使用

安裝包 使用 const string strconn "Data Sourcedata.db"; using (SQLiteConnection conn new SQLiteConnection(strconn)) {conn.Open();var cmd conn.CreateCommand();cmd.CommandText "select 1";var obj cmd.ExecuteScalar();MessageBox.Show(ob…

ES 查詢踩坑-全字段匹配

需求:name字段需要全匹配查詢 name的映射 普通的must查詢 GET power_engin/_search {"from": 0,"size": 10,"query": {"bool": {"must": [{"term": {"name": {"value": "尼…

刷題之路徑總和Ⅲ(leetcode)

路徑總和Ⅲ 這題和和《為K的數組》思路一致&#xff0c;也是用前綴表。 代碼調試過&#xff0c;所以還加一部分用前序遍歷數組和中序遍歷數組構造二叉樹的代碼。 #include<vector> #include<unordered_map> #include<iostream> using namespace std; //Def…

python從入門到精通01

一、程序員計算器 number int(input("請輸入一個數字&#xff1a;")) print("二進制",bin(number)) print("八進制",oct(number)) print("十六進制",hex(number))二、給電影打分 score int(input("請給電影《肖申克的救贖》打…

計算機畢業設計Hadoop+Hive地震預測系統 地震數據分析可視化 地震爬蟲 大數據畢業設計 Spark 機器學習 深度學習 Flink 大數據

2024 屆本科畢業論文&#xff08;設計&#xff09; 基于Hadoop的地震預測的 分析與可視化研究 姓 名&#xff1a;____田偉情_________ 系 別&#xff1a;____信息技術學院___ 專 業&#xff1a;數據科學與大數據技術 學 號&#xff1a;__2011103094________ 指導…

【大數據面試題】33 Flink SQL做過哪些優化?

一步一個腳印&#xff0c;一天一道面試題 簡單寫幾個 Flink SQL 的優化 1.優化狀態管理 Flink 的狀態管理對整個程序的性能有較大影響。所以優化效果比較好。 設置空閑狀態自動清理&#xff08;TTL Time-to-Live&#xff09;數據量大時選擇 RocksDBStateBackend // 設置狀…

《圖解支付系統設計與實現》電子書_V20240525

相較于上次公開發布的V20240503版本&#xff0c;變更內容如下&#xff1a; 根據掘金網友zz67373&#xff08;李浩銘&#xff09;的勘誤建議&#xff0c;優化了部分描述。增加&#xff1a;金額處理規范&#xff0c;低代碼報文網關實現完整代碼&#xff0c;分布式流控等內容。擴…

Java虛擬機原理(下)-Dalvik vs ART-探秘Android虛擬機內在機制

Android系統作為移動端主流平臺&#xff0c;其高效的虛擬機無疑是其核心競爭力之一。今天&#xff0c;就讓我們一起剝開Dalvik和ART虛擬機的外衣&#xff0c;深入解析它們的工作原理和優缺點&#xff0c;幫助你全面把握Android系統的運行機制。 正文導覽 Dalvik和ART虛擬機的發…

Openstack all-in-one_ironic 部署測試

1. 基礎環境 apt update apt install git python3-dev libffi-dev gcc libssl-dev apt install python3-venv 2. 設置虛擬環境變量 root@controller01:~# python3 -m venv /deploy/venv root@controller01:~# source /deploy/venv/bin/activate (venv) root@controller01:~#…

Nginx - 安全基線配置與操作指南

文章目錄 概述中間件安全基線配置手冊1. 概述1.1 目的1.2 適用范圍 2. Nginx基線配置2.1 版本說明2.2 安裝目錄2.3 用戶創建2.4 二進制文件權限2.5 關閉服務器標記2.6 設置 timeout2.7 設置 NGINX 緩沖區2.8 日志配置2.9 日志切割2.10 限制訪問 IP2.11 限制僅允許域名訪問2.12 …