TN020: convenções de nomenclatura de ID e numeração
Esta nota descreve as convenções de nomenclatura e numeração de ID que o MFC 2.0 usa para recursos, comandos, cadeias de caracteres, controles e janelas filho.
As convenções de nomenclatura e numeração de ID do MFC destinam-se a atender aos seguintes requisitos:
Fornecer um padrão de nomenclatura de ID consistente usado na biblioteca MFC e aplicativos MFC que possuem suporte do editor de recursos do Visual C++. Isso torna mais fácil para o programador interpretar o tipo e a origem de um recurso de sua ID.
Enfatizar a forte relação de 1 para 1 entre determinados tipos de IDs.
Estar em conformidade com os padrões já amplamente usados para nomear IDs no Windows.
Particionar o espaço de numeração de ID. Os números de ID podem ser atribuídos por recursos editados pelo programador, pelo MFC, pelo Windows e pelo Visual C++. O particionamento apropriado ajudará a evitar a duplicação de números de ID.
A convenção de nomenclatura de prefixo de ID
Vários tipos de IDs podem ocorrer em um aplicativo. A convenção de nomenclatura de ID do MFC define prefixos diferentes para diferentes tipos de recursos.
O MFC usa o prefixo "IDR_" para indicar uma ID de recurso que se aplica a vários tipos de recursos. Por exemplo, para uma determinada janela de quadro, o MFC usa o mesmo prefixo "IDR_" para indicar um recurso de menu, acelerador, cadeia de caracteres e ícone. A tabela a seguir mostra os vários prefixos e seus usos:
Prefix | Uso |
---|---|
IDR_ | Para vários tipos de recursos (usados principalmente para menus, aceleradores e faixas de opções). |
IDD_ | Para recursos de modelo de caixa de diálogo (por exemplo, IDD_DIALOG1). |
IDC_ | Para recursos de cursor. |
IDI_ | Para recursos de ícone. |
IDB_ | Para recursos de bitmap. |
IDS_ | Para recursos de cadeia de caracteres. |
Em um recurso DIALOG, o MFC segue estas convenções:
Prefixo ou rótulo | Uso |
---|---|
IDOK, IDCANCEL | Para IDs de botão de ação padrão. |
IDC_ | Para outros controles de caixa de diálogo. |
O prefixo "IDC_" também é usado para cursores. Geralmente, esse conflito de nomenclatura não é um problema porque um aplicativo típico terá poucos cursores e muitos controles de caixa de diálogo.
Em um recurso de menu, o MFC segue estas convenções:
Prefix | Uso |
---|---|
IDM_ | Para itens de menu que não usam a arquitetura de comando MFC. |
ID_ | Para comandos de menu que usam a arquitetura de comando MFC. |
Os comandos que seguem a arquitetura de comando MFC devem ter um manipulador de comando ON_COMMAND e podem ter um manipulador ON_UPDATE_COMMAND_UI. Se esses manipuladores de comando seguirem a arquitetura de comando MFC, eles funcionarão corretamente se estiverem associados a um comando de menu, um botão de barra de ferramentas ou um botão de barra de diálogo. O mesmo prefixo "ID_" também é usado para uma cadeia de caracteres de prompt de menu exibida na barra de mensagens do programa. A maioria dos itens de menu em seu aplicativo deve seguir as convenções de comando MFC. Todas as IDs de comando padrão (por exemplo, ID_FILE_NEW) seguem esta convenção.
O MFC também usa "IDP_" como uma forma especializada de cadeias de caracteres (em vez de "IDS_"). Cadeias de caracteres com o prefixo "IDP_" são prompts, ou seja, cadeias de caracteres usadas em caixas de mensagem. Cadeias de caracteres "IDP_" podem conter "%1" e "%2" como espaços reservados de cadeias de caracteres determinadas pelo programa. As cadeias de caracteres "IDP_" geralmente têm tópicos de ajuda associados a elas e as cadeias de caracteres "IDS_" não. Cadeias de caracteres "IDP_" são sempre localizadas e cadeias de caracteres "IDS_" podem não ser localizadas.
A biblioteca MFC também usa o prefixo "IDW_" como uma forma especializada de IDs de controle (em vez de "IDC_"). Essas IDs são atribuídas a janelas filho, como exibições e divisores pelas classes de estrutura. As IDs de implementação do MFC são prefixadas com "AFX_".
Convenção de numeração de ID
A tabela a seguir lista os intervalos válidos para as IDs dos tipos específicos. Alguns dos limites são limites de implementação técnica e outros são convenções projetadas para impedir que suas IDs colidam com IDs predefinidas do Windows ou implementações padrão do MFC.
É altamente recomendável que você defina todas as IDs dentro dos intervalos recomendados. O limite inferior desses intervalos é 1 porque 0 não é usado. Recomendamos que você use a convenção comum e use 100 ou 101 como a primeira ID.
Prefix | Tipo de recurso | Intervalo válido |
---|---|---|
IDR_ | multiple | de 1 a 0x6FFF |
IDD_ | modelos de caixa de diálogo | de 1 a 0x6FFF |
IDC_,IDI_,IDB_ | cursores, ícones, bitmaps | de 1 a 0x6FFF |
IDS_, IDP_ | cadeias de caracteres gerais | de 1 a 0x7FFF |
ID_ | commands | de 0x8000 a 0xDFFF |
IDC_ | controls | de 8 a 0xDFFF |
Motivos para esses limites de intervalo:
Por convenção, o valor 0 de ID não é usado.
As limitações de implementação do Windows restringem que as IDs de recurso verdadeiras sejam menores ou iguais a 0x7FFF.
A estrutura interna do MFC reserva esses intervalos:
de 0x7000 d 0x7FFF (consulte afxres.h)
de 0xE000 a 0xEFFF (consulte afxres.h)
de 16000 a 18000 (consulte afxribbonres.h)
Esses intervalos podem ser alterados em futuras implementações do MFC.
Vários comandos do sistema Windows usam o intervalo de 0xF000 a 0xFFFF.
As IDs de controle de 1 a 7 são reservadas para controles padrão, como IDOK e IDCANCEL.
O intervalo de 0x8000 a 0xFFFF para cadeias de caracteres é reservado para prompts de menu para comandos.
Confira também
Observações técnicas por número
Observações técnicas por categoria