显¥Ü±Û转¤å¥»ªº·½¥N码
±z¬O²Ä
170ÓÂsÄýªÌ
¦b¦³ªº应¥Î¤¤¡A为¤F达¨ì¯S®íªº®ÄªG¡A经±`»Ýn显¥Ü±Û转ªº¤å¥»¡C¤å¥»ªº显¥Ü¤è
¦¡¡A¥]¬A±Û转¡A³£¬O¥Ñ¦rÊ^来设¸mªº¡C¦rÊ^ªº属©Ê¥Dn¥Ñ创«Ø¦rÊ^时¨Ï¥Îªº
LOGFONT结ÌÛ规©w¡A该结ÌÛ¤¤ªºlfEscapement°ì«ü©w¤F¤å¥»¦æÉOX轴¡]¤ô¥轴¡^ªº¨¤
«×¡A¨ä¨¤«×单¦ì¬O¤Q¤À¤§¤@«×¡C为¤F¬O©Ò¦³ªº¦rÊ^¦V¬Û¦Pªº¤è¦V±Û转¡A还应¦P时将
LOGFONT结ÌÛªºlfClipPrecision°ì设为CLIP_LH_ANGLES¡C
¤U±ªº¥N码将¦b对话®Ø¤¤显¥Ü¦b¦P¤@°_点¨C¹j15«×显¥Ü¤@¦æ¤å¥»¡G
void CRotateTextDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CRect rc;
GetClientRect(rc);
CString str(_T("............±Û转¤å¥»¡I"));
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0,0,255));
CFont font;
LOGFONT lf;
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight = -14;
lf.lfWeight = FW_NORMAL;
lf.lfClipPrecision = CLIP_LH_ANGLES;
strcpy(lf.lfFaceName, "§ºÊ^");
for (int i=0;i<3600;i+=150)
{
lf.lfEscapement = i;
font.CreateFontIndirect(&lf);
CFont *pOldFont = dc.SelectObject(&font);
dc.TextOut(rc.right/2, rc.bottom/2,str);
dc.SelectObject(pOldFont);
font.DeleteObject();
}
CDialog::OnPaint();
}
}
¹ê¥Î¬ÛÃö·j´M: lg cx ¤ô dc