2010-11-18 9 views
0

Keyboard MFC İletişim Kutusunda çalışmayan anahtarını girin. Kullanıcı adı ve şifreyi girdiğimde ve Enter tuşuna bastığımda tek bir MFC Giriş diyaloğuna sahibim.Klavye Enter tuşu MFC İletişim Kutusunda çalışmıyor mu?

MFC'de klavye tuşu çalışması yapmak için ne yapmam gerekiyor?

+1

Enter tuşu IDOK'a çevrilir. Bu tuşa bastığınızda, Tamam düğmesine tıklamak benzer. Normalde OnOK() denir. Muhtemelen bu, "aktif" anahtar olarak girişin kaldırılmasına yardımcı olur. – harper

+0

@harper: İhtiyacım olmadığından MFC iletişim kutusundan Tamam düğmesini kaldırdım. –

cevap

0

bu durumda db'nizin pretranslate() yöntemindeki enter tuşunu kullanın.

+0

Şimdi ben kullanıyorum pretranslate() yöntemi: BOOL CNDSConnectDlg :: PreTranslateMessage (MSG * pMsg) { taban sınıfı if (pMsg-> mesajı == WM_KEYDOWN) { if (pMsg-> WParam == VK_Return || pMsg-> wParam == VK_ESCAPE) pMsg-> wParam = NULL; CD121 dönüşü :: PreTranslateMessage (pMsg); } Şimdi enter tuşuna bastığımda kapatılmıyor ama şimdi giriş tuşuna basmak istiyorum, giriş yöntemini pretransalte() her çağırdığında arayacağım. –

3

OnOK() ve/veya OnCancel() yöntemlerini uygulayın ve buradaki temel yöntemleri arama. (bunlar aşırı yüklenebilen sanal yöntemlerdir).

Düğmeleri kaldırdığınızdan, olayları işlemek zorunda olmadığınız anlamına gelmez! OnOK(), anahtarını ve Escape Arası iletişim kutusu için OnCancel() anahtarını girerek tetiklenir.

+0

Sorun şu ki Tamam ve iptal düğmesine ihtiyaç duymadığım için iletişim kutusuna bir giriş ve kapat düğmesi koymuştum ama oturum açma düğmesinin üstüne bir resim yerleştiriyorum ki bunun için Ownerdraw özelliğini ayarlamak gerekiyor = true Düğme ile giriş görüntüsünü birleştirmek için buton, varsayılan düğme gibi yaptığınızda im imi düğmesi düğmesi yanlış olur. –

+0

Peki neden varsayılan düğme özelliği yanlış oluyor? Bu bana problem gibi geliyor. Böyle – jussij