Nasıl yapılır: Sembolleri Yönetme
Yeni bir kaynak veya kaynak nesnesi oluşturduğunuzda, geliştirme ortamı buna varsayılan bir simge adı (örneğin, IDD_DIALOG1
) atar. Varsayılan simge adını değiştirmek veya zaten bir kaynakla ilişkilendirilmiş herhangi bir simgenin adını değiştirmek için Özellikler penceresi kullanabilirsiniz.
Tek bir kaynakla ilişkilendirilmiş simgeler için, Simge değerini değiştirmek için Özellikler penceresini de kullanabilirsiniz. Şu anda bir kaynağa atanmamış simgelerin değerini değiştirmek için Kaynak Simgeleri iletişim kutusunu kullanabilirsiniz.
Normalde tüm sembol tanımları içinde Resource.h
kaydedilir. Ancak, örneğin aynı dizinde birden fazla kaynak dosyasıyla çalışabilmek için bu ekleme dosya adını değiştirmeniz gerekebilir.
Not
Projeniz henüz bir .rc dosyası içermiyorsa bkz . Nasıl yapılır: Kaynak Oluşturma.
Sembol Adı Kısıtlamaları
Sembol adlarıyla ilgili kısıtlamalar aşağıdaki gibidir:
Üst bilgi dosyalarında çakışan sembol tanımlarını önlemek için tüm sembollerin uygulama kapsamında benzersiz olması gerekir.
Simge adı için geçerli karakterler arasında A-Z, a-z, 0-9 ve alt çizgi ( _ ) bulunur.
Simge adları bir sayı ile başlayamaz ve 247 karakterle sınırlıdır.
Simge adları boşluk içeremez.
Simge adları büyük/küçük harfe duyarlı değildir, ancak ilk simge tanımının büyük/küçük harf durumu korunur.
Simgeleri tanımlayan üst bilgi dosyası hem kaynak derleyicisi/düzenleyicisi hem de C++ programları tarafından bir kaynak dosyasında tanımlanan kaynaklara başvurmak için kullanılır. Yalnızca durumda farklı olan iki simge adı için C++ programı iki ayrı simge görürken, kaynak derleyicisi/düzenleyicisi her iki adı da tek bir simgeye başvururken görür.
Not
Aşağıda özetlenen standart simge adı düzenini (ID*_[anahtar sözcük]) izlemezseniz ve simge adınız kaynak betik derleyicisi tarafından bilinen bir anahtar sözcükle aynıysa, kaynak betik dosyasını oluşturmaya çalışmak, tanılanması zor rastgele bir hata oluşturma işlemine neden olur. Bunu önlemek için standart adlandırma düzenine uyun.
Simge adları, temsil ettikleri kaynak veya nesne türünü belirten açıklayıcı ön eklere sahiptir. Bu açıklayıcı ön ekler metin bileşimi kimliğiyle başlar. Microsoft Foundation Sınıfı (MFC) kitaplığı, aşağıdaki tabloda gösterilen sembol adlandırma kurallarını kullanır:
Kategori | Önek | Kullanma |
---|---|---|
Kaynaklar | IDR_, IDD_, IDC_, IDI_ IDB_ | Hızlandırıcı veya menü (ve ilişkili veya özel kaynaklar), iletişim kutusu, imleç, simge, bit eşlem |
Menü öğeleri | KİMLİĞİ_ | Menü Öğesi |
Komutlar | KİMLİĞİ_ | Command |
Denetimler ve alt pencereler | IDC_ | Control |
Dizeler | KİMLİK_ | Dize tablosundaki dize |
MFC | AFX_ | Önceden tanımlanmış MFC simgeleri için ayrılmış |
Simge adını (KIMLIK) değiştirmek için
Özellikler penceresinde yeni bir simge adı yazın veya Kimlik kutusundaki mevcut simgeler listesinden seçin.
Yeni bir simge adı yazarsanız, buna otomatik olarak bir değer atanır.
Not
Şu anda bir kaynağa atanmamış simgelerin adlarını değiştirmek için Kaynak Simgeleri iletişim kutusunu kullanabilirsiniz.
Sembol Değeri Kısıtlamaları
Sembol değeri, önişlemci yönergeleri için #define
normal şekilde ifade edilen herhangi bir tamsayı olabilir. Sembol değerlerine bazı örnekler aşağıda verilmiştir:
18
4001
0x0012
-3456
Hızlandırıcılar, bit eşlemler, imleçler, iletişim kutuları, simgeler, menüler, dize tabloları ve sürüm bilgileri gibi kaynakların sembol değerleri 0 ile 32.767 arasında ondalık sayılar olmalıdır, ancak onaltılık olamaz. İletişim kutusu denetimleri veya dize tablosundaki tek tek dizeler gibi kaynakların bölümleri için sembol değerleri 0 ile 65.534 veya -32.768 ile 32.767 arası olabilir. Sayı aralıkları hakkında daha fazla bilgi için bkz . TN023: Standart MFC Kaynakları.
Kaynak simgeleri 16 bit sayılardır. Bunları imzalı veya imzasız olarak girebilirsiniz, ancak bunlar dahili olarak işaretsiz tamsayılar olarak kullanılır, bu nedenle negatif sayılar karşılık gelen pozitif değerlerine dönüştürülür.
Sembol değerlerinin bazı sınırlamaları şunlardır:
Visual Studio geliştirme ortamı ve MFC, özel amaçlar için bazı sayı aralıklarını kullanır. En önemli bit kümesine sahip tüm sayılar (işarete bağlı olarak-32.768 - -1 veya 32.768 - 65.534) MFC tarafından ayrılır.
Diğer sembol dizelerini kullanarak bir sembol değeri tanımlayamazsınız. Örneğin, aşağıdaki sembol tanımı desteklenmez:
#define IDC_MYEDIT IDC_OTHEREDIT //not supported
Değer tanımları olarak bağımsız değişkenler içeren ön işlemci makrolarını kullanamazsınız. Aşağıdaki örnek, derleme zamanında değerlendirilen değerden
ID
bağımsız olarak geçerli bir ifade değildir:#define IDD_ABOUT ID(7) //not supported
Uygulamanızın ifadelerle tanımlanmış simgeleri içeren mevcut bir dosyası olabilir.
Simge değerini değiştirmek için
Özellikler penceresinde, simge adını ve ardından bir eşittir işareti ve kimlik kutusuna bir tamsayı yazın, örneğin:
IDC_EDITNAME=5100
Yeni değer, projeyi bir sonraki kaydedişinizde sembol üst bilgi dosyasında depolanır. Kimlik kutusunda yalnızca simge adı görünür durumda kalır ve eşittir işareti ve değeri doğrulandıktan sonra görüntülenmez.
Simgeleri Değiştirme veya Silme
Kaynak Simgeleri iletişim kutusundayken, henüz bir kaynağa veya nesneye atanmamış olan mevcut simgeleri düzenleyebilir veya silebilirsiniz.
Atanmamış simgeyi değiştirmek için
Ad kutusunda atanmamış simgeyi seçin ve Değiştir'i seçin.
Simgeyi Değiştir iletişim kutusunda sağlanan kutularda simgenin adını veya değerini düzenleyin.
Not
Bir kaynağa veya nesneye atanmış bir simgeyi değiştirmek için kaynak düzenleyicisini veya Özellikler penceresini kullanmanız gerekir.
Atanmamış (kullanılmayan) simgeyi silmek için
Kaynak Simgeleri iletişim kutusunda, silmek istediğiniz simgeyi seçin ve ardından Sil'i seçin.
Not
Kaynak dosyasında kullanılmayan bir simgeyi silmeden önce, programın başka bir yerinde veya derleme zamanında dahil edilen kaynak dosyaları tarafından kullanılmadığından emin olun.
Simgeleri Dahil Et
Geliştirme ortamı başka bir uygulama tarafından oluşturulan bir kaynak dosyasını ilk kez okuduğunda, eklenen tüm üst bilgi dosyalarını salt okunur olarak işaretler. Ancak, ek salt okunur simge üst bilgi dosyaları eklemek için Kaynak İçeriği iletişim kutusunu kullanabilirsiniz.
Salt okunur sembol tanımlarını kullanmak isteme nedenlerinden biri, çeşitli projeler arasında paylaşmayı planladığınız sembol dosyalarıdır.
Simge değerini tanımlamak için basit tamsayılar yerine ifadeler kullanan sembol tanımlarına sahip mevcut kaynaklarınız varsa dahil edilen sembol dosyalarını da kullanabilirsiniz. Örneğin:
#define IDC_CONTROL1 2100
#define IDC_CONTROL2 (IDC_CONTROL1+1)
Ortam, şu süre boyunca bu hesaplanmış simgeleri doğru şekilde yorumlar:
Hesaplanan simgeler salt okunur simgeler dosyasına yerleştirilir.
Kaynak dosyanız, bu hesaplanmış simgelerin zaten atanmış olduğu kaynakları içerir.
Sayısal bir ifade beklenir.
Not
Bir dize veya sayısal ifade bekleniyorsa, ifade değerlendirilmez.
Kaynak dosyanıza paylaşılan (salt okunur) simgeler eklemek için
Kaynak Görünümü'nde .rc dosyanıza sağ tıklayın ve Kaynak İçerir'i seçin.
Salt okunur sembol yönergeleri kutusunda, salt okunur simgelerin
#include
tutulmasını istediğiniz dosyayı belirtmek için derleyici yönergesini kullanın.Normalde ana simge üst bilgi dosyası
Resource.h
tarafından kullanılan dosya adı olduğundan dosyasını çağırmayın.Not
Salt Okunur simge yönergeleri kutusuna yazdığınız şey, kaynak dosyasına tam olarak siz yazarken eklenir. Yazdığınız şeyin yazım veya söz dizimi hatası içermediğinden emin olun.
Yalnızca sembol tanımlarına sahip dosyaları eklemek için Salt okunur sembol yönergeleri kutusunu kullanın. Kaynak tanımlarını eklemeyin, aksi takdirde dosya kaydedildiğinde yinelenen kaynak tanımları oluşturulur.
Simgeleri belirttiğiniz dosyaya yerleştirin.
Bu şekilde eklenen dosyalardaki simgeler, kaynak dosyanızı her açtığınızda değerlendirilir, ancak dosyanızı kaydettiğinizde diskte değiştirilmez.
Tamam'ı seçin.
Kaynak simgesi üst bilgi dosyasının adını değiştirmek için
Kaynak Görünümü'nde .rc dosyanıza sağ tıklayın ve Kaynak İçeriği'ni seçin.
Simge üst bilgi dosyası kutusuna ekleme dosyasının yeni adını yazın.
Gereksinimler
Win32
Ayrıca bkz.
Kaynak Tanımlayıcıları (Semboller)
Nasıl yapılır: Sembol Oluşturma
Önceden Tanımlanmış Sembol Kimlikleri