我是初学者,有谁能帮帮我?
#include "afxwin.h"
#include "afxext.h"
#include "math.h"
//将角度转换为弧度
double dTransAngleToRadian(double dAngle);
class CMyApp : public CWinApp
{
public:
virtual bool InitInstance();//这里有错?
};
class CMyWnd:public CFrameWnd
{
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();
};
bool CMyApp::InitInstance()
{
CMyWnd* pWnd = new CMyWnd;
pWnd->Create(NULL,"例子!");
pWnd->ShowWindow(SW_SHOW);
pWnd->UpdateWindow();
m_pMainWnd = pWnd;
return true;
}
CMyApp MyApp;
BEGIN_MESSAGE_MAP(CMyWnd,CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
dc.SetBkMode(TRANSPARENT);
LOGFONT lf;
dc.GetCurrentFont()->GetLogFont(&lf);
CFont font1,font2;
CFont *pOldFont;
lf.lfCharSet = 134;
lf.lfHeight = -14;
lf.lfWidth = 0;
strcpy(lf.lfFaceName,"宋体");
font1.CreateFontIndirect(&lf);
lf.lfCharSet = 0;
strcpy(lf.lfFaceName,"Times New Roman");
lf.lfEscapement = 300;
lf.lfHeight = -20;
font2.CreateFontIndirect(&lf);
pOldFont = dc.SelectObject(&font2);
CSize sz = dc.GetTextExtent("向上30度");
dc.TextOut(10,10 + int(sz.cx * sin(dTransAngleToRadian(30))),"向上30度");
lf.lfEscapement = -300;
dc.SelectObject(pOldFont);
font2.DeleteObject();
font2.CreateFontIndirect(&lf);
dc.SelectObject(&font2);
dc.TextOut(155 - int(sz.cx*cos(dTransAngleToRadian(30))),10,"秦歇脚向上30度");
dc.SelectObject(&font1);
sz = dc.GetTextExtent("参数lfescapemet确定输出文字角度");
dc.TextOut(155 - sz.cx/2,110,"参数lfescapemet确定输出文字角度");
lf.lfCharSet =134;
strcpy(lf.lfFaceName,"宋体");
lf.lfEscapement = 0 ;
lf.lfWeight = 0;
lf.lfHeight = -50;
dc.SelectObject(pOldFont);
font2.DeleteObject();
font2.CreateFontIndirect(&lf);
dc.SelectObject(&font2);
dc.TextOut(330,10,"细");
lf.lfWeight = 1000;
dc.SelectObject(pOldFont);
font2.DeleteObject();
font2.CreateFontIndirect(&lf);
dc.SelectObject(&font2);
dc.TextOut(330,80,"粗");
dc.SelectObject(&font1);
dc.TextOut(395,110,"参数lfweight确定输出文字的粗细");
dc.SelectObject(pOldFont);
}
double dTransAngleToRadian(double dAngle)
{
double dRadian = dAngle/180*3.1415926;
return dRadian;
}