wxWidgets:窗口 ID
wxWidgets:窗口 ID
- wxWidgets:窗口 ID
- 數(shù)據(jù)類型
- 使用 wxWindowIDRef
wxWidgets:窗口 ID
wxWidgets 的各種控件和其他部分都需要一個(gè) ID。
有時(shí),ID 可能由用戶直接提供或具有預(yù)定義的值,例如wxID_OPEN。然而,通常 ID 的值并不重要,它是通過調(diào)用wxWindow::NewControlId或wxID_ANY作為對(duì)象的 ID傳遞來自動(dòng)創(chuàng)建的。
有兩種方法可以生成 ID。一種方法是從負(fù)數(shù)開始,對(duì)于每個(gè)新 ID,返回下一個(gè)最小的數(shù)字。這對(duì)于可以對(duì) ID 使用全范圍負(fù)數(shù)的系統(tǒng)來說很好,因?yàn)檫@提供了足夠多的 ID,并且需要很長(zhǎng)時(shí)間才能用完并回繞。但是,某些系統(tǒng)無法使用 ID 值的全部范圍。例如,Windows 只能使用 16 位 ID,并且只有大約 32000 個(gè)可能的自動(dòng) ID 可以由wxWindow::NewControlId生成。如果程序運(yùn)行時(shí)間足夠長(zhǎng),取決于程序本身,使用第一種方法會(huì)導(dǎo)致 ID 環(huán)繞在正 ID 范圍內(nèi),并可能與任何直接指定的 ID 值發(fā)生沖突。
另一種方法是跟蹤wxWindow::NewControlId返回的 ID,并且在 ID 完全空閑且未被任何其他對(duì)象使用之前不要再次返回它們。這將確保 ID 值不會(huì)相互沖突。這是通過為wxWindow::NewControlId可能返回的每個(gè) ID 保留一個(gè)引用計(jì)數(shù)來實(shí)現(xiàn)的。其他 ID 不進(jìn)行引用計(jì)數(shù)。
總結(jié)
以上是生活随笔為你收集整理的wxWidgets:窗口 ID的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部队文职什么时候入伍?
- 下一篇: wxWidgets:日志概述