Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, tarih ve saat seçici (DTP) denetimi tarafından gönderilen Biçim Sorgusu bildiriminin nasıl işlendiği gösterilmektedir.
Bilmeniz gerekenler
Teknolojileri
Önkoşullar
- C/C++
- Windows Kullanıcı Arabirimi Programlama
Talimatlar
DTP denetimi, denetim içindeki bir geri çağırma alanının mümkün olan en büyük boyutu hakkında bilgi istemek için bir DTN_FORMATQUERY bildirim kodu gönderir. Tüm alanların düzgün görüntülendiğinden emin olmak için uygulamanızın bu iletiyi işlemesi gerekir.
Aşağıdaki C++ kod örneği, belirli bir geri çağırma alanı için mümkün olan en geniş dizenin genişliğini hesaplayarak DTN_FORMATQUERY bildirim kodunu işleyen uygulama tanımlı bir işlevdir.
Güvenlik Uyarısı:lstrcmp yanlış kullanılması uygulamanızın güvenliğini tehlikeye atabilir. Örneğin, aşağıdaki kod örneğinde lstrcmp çağırmadan önce iki dizenin null olarak sonlandırıldığından emin olmanız gerekir. Devam etmeden önce Güvenlikle İlgili Önemli Noktalar: Microsoft Windows Denetimleri gözden geçirmelisiniz.
// DoFormatQuery processes DTN_FORMATQUERY messages to ensure that the
// DTP control displays callback fields properly.
//
void WINAPI DoFormatQuery(
HWND hwndDP,
LPNMDATETIMEFORMATQUERY lpDTFQuery)
{
HDC hdc;
HFONT hFont, hOrigFont;
// Prepare the device context for GetTextExtentPoint32 call.
hdc = GetDC(hwndDP);
hFont = (HFONT) SendMessage(hwndDP, WM_GETFONT, 0L, 0L);
if(!hFont)
hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
hOrigFont = (HFONT) SelectObject(hdc, hFont);
// Check to see if this is the callback segment desired. If so,
// use the longest text segment to determine the maximum
// width of the callback field, and then place the information into
// the NMDATETIMEFORMATQUERY structure.
if(!lstrcmp(L"XX",lpDTFQuery->pszFormat))
GetTextExtentPoint32 (hdc,
L"366", // widest date string
3,
&lpDTFQuery->szMax);
// Reset the font in the device context; then release the context.
SelectObject(hdc,hOrigFont);
ReleaseDC(hwndDP, hdc);
}
İlgili konular