Pages de propriétés (MFC)
Les pages de propriétés affichent les valeurs actuelles des propriétés de contrôle OLE spécifiques dans une interface graphique personnalisable pour l’affichage et la modification en prenant en charge un mécanisme de mappage de données basé sur l’échange de données de boîte de dialogue (DDX).
Ce mécanisme de mappage de données mappe les contrôles de page de propriétés aux propriétés individuelles du contrôle OLE. La valeur de la propriété de contrôle reflète l’état ou le contenu du contrôle de page de propriétés. Le mappage entre les contrôles de page de propriétés et les propriétés est spécifié par DDP_ appels de fonction dans la fonction membre de la page de DoDataExchange
propriétés. Voici une liste de fonctions DDP_ qui échangent des données entrées à l’aide de la page de propriétés de votre contrôle :
Transfert de données de page de propriétés
Nom | Description |
---|---|
DDP_CBIndex | Lie l’index de la chaîne sélectionnée dans une zone de liste modifiable avec la propriété d’un contrôle. |
DDP_CBString | Lie la chaîne sélectionnée dans une zone de liste modifiable avec la propriété d’un contrôle. La chaîne sélectionnée peut commencer par les mêmes lettres que la valeur de la propriété, mais elle n’a pas besoin de la correspondre entièrement. |
DDP_CBStringExact | Lie la chaîne sélectionnée dans une zone de liste modifiable avec la propriété d’un contrôle. La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement. |
DDP_Check | Lie une case à cocher dans la page de propriétés du contrôle avec la propriété d’un contrôle. |
DDP_LBIndex | Lie l’index de la chaîne sélectionnée dans une zone de liste avec la propriété d’un contrôle. |
DDP_LBString | Lie la chaîne sélectionnée dans une zone de liste avec la propriété d’un contrôle. La chaîne sélectionnée peut commencer par les mêmes lettres que la valeur de la propriété, mais elle n’a pas besoin de la correspondre entièrement. |
DDP_LBStringExact | Lie la chaîne sélectionnée dans une zone de liste avec la propriété d’un contrôle. La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement. |
DDP_PostProcessing | Termine le transfert des valeurs de propriété à partir de votre contrôle. |
DDP_Radio | Lie un groupe de cases d’option dans la page de propriétés du contrôle avec la propriété d’un contrôle. |
DDP_Text | Lie un contrôle dans la page de propriétés du contrôle avec la propriété d’un contrôle. Cette fonction gère plusieurs types de propriétés différents, tels que double , short BSTR et long . |
Pour plus d’informations sur la fonction et les DoDataExchange
pages de propriétés, consultez l’article Contrôles ActiveX : Pages de propriétés.
Voici une liste de macros utilisées pour créer et gérer des pages de propriétés pour un contrôle OLE :
Pages de propriétés
Nom | Description |
---|---|
BEGIN_PROPPAGEIDS | Commence la liste des ID de page de propriétés. |
END_PROPPAGEIDS | Termine la liste des ID de page de propriétés. |
PROPPAGEID | Déclare une page de propriétés de la classe de contrôle. |
DDP_CBIndex
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété entière avec l’index de la sélection active dans une zone de liste déroulante de la page de propriétés.
void AFXAPI DDP_CBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste modifiable associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec le contrôle de zone de liste modifiable spécifié par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_CBIndex
.
Spécifications
En-tête afxctl.h
DDP_CBString
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété de chaîne avec la sélection actuelle dans une zone de liste déroulante de la page de propriétés.
void AFXAPI DDP_CBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste modifiable associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec la chaîne de zone de liste modifiable spécifiée par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_CBString
.
Spécifications
En-tête afxctl.h
DDP_CBStringExact
Appelez cette fonction dans la fonction de la page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété de chaîne qui correspond exactement à la sélection actuelle dans une zone de liste modifiable de la page de propriétés.
void AFXAPI DDP_CBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste modifiable associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec la chaîne de zone de liste modifiable spécifiée par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_CBStringExact
.
Spécifications
En-tête afxctl.h
DDP_Check
Appelez cette fonction dans la fonction de la page de DoDataExchange
propriétés pour synchroniser la valeur de la propriété avec le contrôle de case à cocher de la page de propriétés associée.
void AFXAPI DDP_Check(
CDataExchange* pDX,
int id,
int & member,
LPCSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de case à cocher associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec le contrôle de case à cocher spécifié par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_Check
.
Spécifications
En-tête afxctl.h
DDP_LBIndex
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété entière avec l’index de la sélection active dans une zone de liste de la page de propriétés.
void AFXAPI DDP_LBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec la chaîne de zone de liste spécifiée par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_LBIndex
.
Spécifications
En-tête afxctl.h
DDP_LBString
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété de chaîne avec la sélection actuelle dans une zone de liste de la page de propriétés.
void AFXAPI DDP_LBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec la chaîne de zone de liste spécifiée par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_LBString
.
Spécifications
En-tête afxctl.h
DDP_LBStringExact
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour synchroniser la valeur d’une propriété de chaîne qui correspond exactement à la sélection actuelle dans une zone de liste de la page de propriétés.
void AFXAPI DDP_LBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de zone de liste associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec la chaîne de zone de liste spécifiée par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_LBStringExact
.
Spécifications
En-tête afxctl.h
DDP_PostProcessing
Appelez cette fonction dans la fonction de votre page de DoDataExchange
propriétés pour terminer le transfert des valeurs de propriété de la page de propriétés vers votre contrôle lorsque les valeurs de propriété sont enregistrées.
void AFXAPI DDP_PostProcessing(CDataExchange * pDX);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
Notes
Cette fonction doit être appelée une fois toutes les fonctions d’échange de données terminées. Par exemple :
void CMyAxPropPage::DoDataExchange(CDataExchange *pDX)
{
DDP_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition, _T("NeedlePosition"));
DDX_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition);
DDV_MinMaxInt(pDX, m_NeedlePosition, 0, 3);
DDP_PostProcessing(pDX);
}
Spécifications
En-tête afxctl.h
DDP_Radio
Appelez cette fonction dans la fonction de DoPropExchange
votre contrôle pour synchroniser la valeur de la propriété avec le contrôle de case d’option de page de propriétés associé.
void AFXAPI DDP_Radio(
CDataExchange* pDX,
int id,
int & member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle de case d’option associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec le contrôle de case d’option spécifié par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_Radio
.
Spécifications
En-tête afxctl.h
DDP_Text
Appelez cette fonction dans la fonction de DoDataExchange
votre contrôle pour synchroniser la valeur de la propriété avec le contrôle de page de propriétés associé.
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
BYTE & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
int & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
UINT & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
long & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
DWORD & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
float & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
double & member,
LPCTSTR pszPropName);
void AFXAPI DDP_Text(
CDataExchange* pDX,
int id,
CString & member,
LPCTSTR pszPropName);
Paramètres
pDX
Pointeur vers un CDataExchange
objet. L’infrastructure fournit cet objet pour établir le contexte de l’échange de données, notamment sa direction.
id
ID de ressource du contrôle associé à la propriété de contrôle spécifiée par pszPropName.
member
Variable membre associée au contrôle de page de propriétés spécifié par id et propriété spécifiée par pszPropName.
pszPropName
Nom de propriété de la propriété de contrôle à échanger avec le contrôle spécifié par ID.
Notes
Cette fonction doit être appelée avant l’appel de fonction correspondant DDX_Text
.
Spécifications
En-tête afxctl.h
BEGIN_PROPPAGEIDS
Commence la définition de la liste des ID de page de propriétés de votre contrôle.
BEGIN_PROPPAGEIDS(class_name, count)
Paramètres
class_name
Nom de la classe de contrôle pour laquelle les pages de propriétés sont spécifiées.
count
Nombre de pages de propriétés utilisées par la classe de contrôle.
Notes
Dans le fichier d’implémentation (.cpp) qui définit les fonctions membres de votre classe, démarrez la liste des pages de propriétés avec la macro BEGIN_PROPPAGEIDS, puis ajoutez des entrées de macro pour chacune de vos pages de propriétés, puis terminez la liste des pages de propriétés avec la macro END_PROPPAGEIDS.
Pour plus d’informations sur les pages de propriétés, consultez l’article Contrôles ActiveX : Pages de propriétés.
Spécifications
En-tête afxctl.h
END_PROPPAGEIDS
Termine la définition de votre liste d’ID de page de propriétés.
END_PROPPAGEIDS(class_name)
Paramètres
class_name
Nom de la classe de contrôle propriétaire de la page de propriétés.
Spécifications
En-tête afxctl.h
PROPPAGEID
Ajoute une page de propriétés à utiliser par votre contrôle OLE.
PROPPAGEID(clsid)
Paramètres
clsid
ID de classe unique d’une page de propriétés.
Notes
Toutes les macros PROPPAGEID doivent être placées entre les macros BEGIN_PROPPAGEIDS et END_PROPPAGEIDS dans le fichier d’implémentation de votre contrôle.
Spécifications
En-tête afxctl.h