Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit onderwerp laat zien hoe u een formatteringsquerymelding verwerkt die wordt verzonden door de datum- en tijdkiezer (DTP)-besturingselement.
Wat u moet weten
Technologieƫn
Voorwaarden
- C/C++
- Programmeren van Windows-gebruikersinterface
Aanwijzingen
Een DTP-besturingselement verzendt een DTN_FORMATQUERY meldingscode om informatie op te vragen over de maximale grootte van een callback-veld binnen het besturingselement. Uw toepassing moet dit bericht afhandelen om ervoor te zorgen dat alle velden correct worden weergegeven.
Het volgende C++-codevoorbeeld is een door de toepassing gedefinieerde functie waarmee de DTN_FORMATQUERY meldingscode wordt verwerkt door de breedte van de breedste mogelijke tekenreeks voor een bepaald callback-veld te berekenen.
Beveiligingswaarschuwing:lstrcmp- onjuist gebruiken, kan de beveiliging van uw toepassing in gevaar komen. Voordat u bijvoorbeeld lstrcmp- aanroept in het volgende codevoorbeeld, moet u ervoor zorgen dat de twee tekenreeksen null-beƫindigd zijn. Bekijk Beveiligingsoverwegingen: Microsoft Windows Controls voordat u doorgaat.
// 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);
}
Verwante onderwerpen