TN020: ID nomeação e numeração convenções
Esta nota descreve a ID de nomeação e numeração convenções MFC 2.0 usa para recursos, comandos, seqüências de caracteres, controles e janelas filho.
A nomeação do MFC ID e a numeração convenções destinam-se a atender aos seguintes requisitos:
Fornecer um padrão de ID de nomeação consistente usado em toda a biblioteca MFC e aplicativos MFC que são suportados pelo Visual C++ recurso editor.Isso torna mais fácil para o programador interpretar o tipo e origem de um recurso de sua ID.
Enfatize a forte relação 1 para 1 entre determinados tipos de identificadores.
Estão em conformidade com padrões já amplamente usados para nomear IDs no Windows.
Particione o espaço de numeração de ID.Números de ID podem ser atribuídos pelo programador, MFC, Windows e recursos editados Visual C++.Particionamento adequado ajudará a evitar a duplicação de números de ID.
A convenção de nomeclatura de prefixo de ID
Vários tipos de IDs podem ocorrer em um aplicativo.convenção de nomeclatura MFC ID define prefixos diferentes para diferentes tipos de recursos.
MFC usa o prefixo "IDR_" para indicar uma ID de recurso se aplica a vários tipos de recursos.Por exemplo, para uma janela de determinado quadro, o MFC usa o mesmo prefixo "IDR_" para indicar um recurso de menu, acelerador, seqüência de caracteres e ícone.A tabela a seguir mostra os diversos prefixos e seu uso:
Prefixo |
Uso |
---|---|
IDR_ |
Para vários tipos de recurso (principalmente usados para menus e aceleradores). |
IDD_ |
Para recursos de modelo de caixa de diálogo (por exemplo, IDD_DIALOG1). |
IDC_ |
Para recursos do cursor. |
IDI_ |
Para recursos de ícone. |
IDB_ |
Para recursos de bitmap. |
IDS_ |
Para recursos de seqüência de caracteres. |
Dentro de um recurso DIALOG, MFC segue as seguintes convenções:
Prefixo ou rótulo |
Uso |
---|---|
IDOK, IDCANCEL |
Para botão de ação padrão identificações. |
IDC_ |
Para outros controles de caixa de diálogo. |
O prefixo "IDC_" também é usado para cursores.Esse conflito de nomes não é normalmente um problema porque um aplicativo típico terá alguns cursores e muitos controles de caixa de diálogo.
Dentro de um recurso de menu, MFC segue as seguintes convenções:
Prefixo |
Uso |
---|---|
IDM_ |
Itens de menu que não usam a arquitetura de comando do MFC. |
ID_ |
Comandos de menu que usam a arquitetura de comando do MFC. |
Comandos que segue a arquitetura de comando do MFC devem ter um ON_COMMAND manipulador de comando e pode ter um ON_UPDATE_COMMAND_UI manipulador. Se esses manipuladores de comandos seguem a arquitetura de comando do MFC, elas funcionarão corretamente se eles estão ligados a um comando de menu, um botão da BAR de ferramentas ou um botão de BAR da caixa de diálogo.O mesmo prefixo "ID_" também é usado por uma seqüência de aviso do menu que é exibida na BAR de mensagens do programa.A maioria dos itens de menu em seu aplicativo deve seguir as convenções de comando do MFC.Todo o padrão do comando IDs (por exemplo, ID_FILE_NEW) seguir essa convenção.
MFC também usa "IDP_" sistema autônomo uma forma especializada de seqüências de caracteres (em vez de "IDS_").As seqüências de caracteres com o prefixo "IDP_" são avisos, ou seja, cadeias de caracteres usadas nas caixas de mensagem. "IDP_ "cadeias de caracteres podem conter"% 1"e"% 2"sistema autônomo espaços reservados de seqüências de caracteres determinadas pelo programa. "IDP_ "cadeias de caracteres geralmente têm os tópicos da Ajuda associados a eles e seqüências de caracteres"IDS_", não. "IDP_ "cadeias de caracteres são sempre localizadas e seqüências de caracteres"IDS_"não podem ser localizadas.
A biblioteca MFC também usa o prefixo "IDW_" sistema autônomo uma forma especializada de IDs (em vez de "IDC_") de controle.Essas identificações são atribuídas às janelas filho, sistema autônomo modos de exibição e divisores pelas classes do estrutura.Identificações de implementação do MFC são prefixadas com "AFX_".
A convenção de numeração de ID
A tabela a seguir lista os intervalos válido para as identificações dos tipos específicos.Alguns dos limites são limites de implementação técnica e outros são convenções que são projetadas para impedir que suas identificações colliding com identificações predefinidas do Windows ou MFC implementações padrão.
É altamente recomendável que você defina todas as identificações de dentro de intervalos recomendados.O limite inferior desses intervalos é 1 como 0 não é usado.Recomendamos que use a convenção comum e use 100 ou 101 sistema autônomo a primeira ID.
Prefixo |
Tipo de recurso |
Intervalo válido |
---|---|---|
IDR_ |
vários |
1 a 0x6FFF |
IDD_ |
caixa de diálogo Modelos |
1 a 0x6FFF |
IDB_ IDC_, IDI_, |
cursores, ícones, bitmaps |
1 a 0x6FFF |
IDS_, IDP_ |
seqüências de caracteres Geral |
1 a 0x7FFF |
ID_ |
comandos |
0 x 8000 através de 0xDFFF |
IDC_ |
controles |
8 a 0xDFFF |
Motivos para esses limites de intervalo:
Por convenção, o valor de ID 0 não é usado.
Limitações de implementação do Windows restringem true recurso IDs ser menor ou igual a 0x7FFF.
Implementações de estrutura interna do MFC reservar dois intervalos: 0x7000 0x7FFF e 0xE000 através de 0xEFFF.
Vários comandos de sistema do Windows usam o intervalo de 0xF000 a 0xFFFF.
IDs de controle de 1 a 7 são reservados para controles padrão sistema autônomo IDOK e IDCANCEL.
O intervalo de 0 x 8000 a 0xFFFF para seqüências de caracteres é reservado para prompts de menu para comandos.