2010-01-28 18 views

Odpowiedz

12

To naprawdę zależy od tego, które kontrolki chcesz utworzyć, zwłaszcza jeśli chcesz wiedzieć, które flagi powinny być ustawione. Ogólnie rzecz biorąc jest to następujące:

Normalnie kontrola pochodna CWnd jest tworzona przy użyciu Create lub CreateEx. Dla CButton, na przykład:

CButton button; 
button.Create("Button text", WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | DT_CENTER, CRect(5, 5, 55, 19), this, nID); 

gdzie CRect określa położenie przycisku, this jest wskaźnikiem do okna nadrzędnego, a nID jest identyfikator kontrola.

Jeśli kontrola nie wychodzi zgodnie z oczekiwaniami, prawdopodobnie wynika to z braku niektórych flag. Proponuję narysować próbkę kontrolną w trybie projektowania, sprawdzić kod tej kontrolki w pliku RC i skopiować flagi do wywołującego Create.

Jeśli chodzi o mapy wiadomości, są one zwykle kierowane do okna nadrzędnego. Wartość nID używana w Create jest tutaj ważna, ponieważ będzie to liczba identyfikująca kontrolkę na mapie komunikatów. Jeśli masz stałą liczbę kontrolek, możesz kodować na stałe numery nID dla kontrolek (na przykład od 10 000); jeśli nie, będziesz musiał określić sposób, w jaki okno nadrzędne będzie je identyfikować. Następnie wystarczy dodać wpisy mapy wiadomości.

ON_BN_CLICKED(10000, OnBnClicked) 
ON_CONTROL_RANGE(BN_CLICKED, 10010, 10020, OnBtnsClicked) 

Możesz korzystać z mapy ON_CONTROL_RANGE wiadomość do mapowania zakres identyfikatorów do tej samej funkcji.

Powiązane problemy