2010-01-28 42 views

Trả lời

12

Nó thực sự phụ thuộc vào điều khiển nào bạn muốn tạo, đặc biệt nếu bạn muốn biết bạn nên đặt cờ nào. Nói chung nó đi xuống đến điều này:

Thông thường, điều khiển có nguồn gốc từ CW được tạo bằng cách sử dụng Create hoặc CreateEx. Đối với một CButton, ví dụ:

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

nơi CRect xác định vị trí nút, this là một con trỏ đến cửa sổ cha mẹ, và nID là kiểm soát ID.

Nếu điều khiển không xuất hiện như mong đợi, có thể do thiếu một số cờ. Tôi đề nghị bạn vẽ một điều khiển mẫu trong chế độ thiết kế, hãy kiểm tra mã cho điều khiển đó trong tệp RC và sao chép cờ cho người gọi Create.

Đối với bản đồ thư, chúng thường được định tuyến đến cửa sổ chính. Giá trị nID bạn đã sử dụng trong Create là quan trọng ở đây, bởi vì nó sẽ là số xác định điều khiển trong bản đồ thư. Nếu bạn có số lượng điều khiển cố định, bạn có thể mã cứng số nID cho các điều khiển của mình (bắt đầu từ 10000 chẳng hạn); nếu không, bạn sẽ phải cung cấp một cách để cửa sổ chính xác định chúng. Sau đó, bạn chỉ cần thêm các mục bản đồ thông báo.

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

Bạn có thể sử dụng bản đồ thông báo ON_CONTROL_RANGE để ánh xạ một loạt các ID đến cùng một chức năng.

Các vấn đề liên quan