Si je comprends bien la question, vous voulez afficher un peu de texte sur votre interface utilisateur du formulaire "Page x de n". Un contrôle de texte statique (comme CTEXT) est approprié pour cela.
Pour définir le texte par programmation, vous pouvez appeler SetWindowText, mais comme il s'agit d'une boîte de dialogue, il est probablement plus facile d'appeler SetDlgItemText. De votre exemple, l'identificateur est IDC_PG
et doit correspondre à une constante numérique unique parmi tous les contrôles de la boîte de dialogue. En supposant que vous avez un objet MFC pour la boîte de dialogue (que je suppose est myDialog
) et un pointeur vers le texte à zéro terminé que vous voulez afficher (ce que je suppose est szPageText
), votre appel ressemblerait à:
myDialog.SetDlgItemText(IDC_PG, szPageText);
Si vous avez juste une poignée de la boîte de dialogue, votre appel ressemblerait à ceci:
SetDlgItemText(hDlg, IDC_PG, szPageText);
Depuis ce code est plus ancien, il peut être compilé pour MBCS (souvent appelés ANSI dans la documentation Windows) ou UTF-16 (souvent appelé chaînes Unicode ou "wide" dans MSDN), vous devez donc probablement utiliser le TCHAR et les macros associées pour vous assurer que cela fonctionne dans les deux sens.
TCHAR szPageText[64] = TEXT("");
wsprintf(szPageText, TEXT("Page %d of %d"), currentPage, totalPages);
myDialog.SetDlgItemText(IDC_PG, szPageText);
Dans le code plus moderne, vous auriez probablement utiliser explicitement les grandes versions des API:
WCHAR szPageText[64] = L"";
::wsprintfW(szPageText, L"Page %d of %d", currentPage, totalPages);
myDialog.SetDlgItemTextW(IDC_PG, szPageText);
CTEXT est une [zone de texte centré sur simple] (https://msdn.microsoft.com /en-us/library/windows/desktop/aa380915(v=vs.85).aspx), pas une liste-boîte. – ZDF
correct, je supprime la faute de frappe de la question, merci – dram