VC ++不显示输出

时间:2012-07-27 09:58:43

标签: visual-c++ sine

我是VC ++的新手,现在已经有几次了,这是第三个即使在成功构建后也不提供输出的程序。

 #include <AFXWIN.H>
 #include <math.h>
 #define PI 3.1415926
 #define SEGMENTS 500

 class CMyApp : public CWinApp {
public:
   virtual BOOL InitInstance();
};

class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT, CPoint);
DECLARE_MESSAGE_MAP();
};

CMyApp myAPP;
    BOOL CMyApp::InitInstance() {
    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow(SW_MAXIMIZE);
    m_pMainWnd->UpdateWindow();
    return TRUE;
  }

 BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
 ON_WM_PAINT ()
 END_MESSAGE_MAP ()

 CMainWindow::CMainWindow() {
     Create(NULL,"The Hello Application",WS_OVERLAPPEDWINDOW);                                                           
}

void CMainWindow::OnPaint() {
    CRect rect;
    int nWidth = rect.Width();
    int nHeight = rect.Height();

CPaintDC dc (this);
CPoint aPoint[SEGMENTS];
for (int i =0; i < SEGMENTS; i++){
    aPoint[i].x = ((i*nWidth)/SEGMENTS );
    aPoint[i].y= (int)((nHeight/2)* (1-(sin((2*PI*i)/SEGMENTS))));
}
dc.Polyline(aPoint, SEGMENTS);
UpdateData(false);
 }

上面的程序应该给出正弦曲线作为输出,除了我得到一个空白窗口。我不知道为什么会这样。如果有帮助,我使用的是VC ++ 6.0

1 个答案:

答案 0 :(得分:1)

问题可能是用于获取宽度和高度的矩形未初始化。您必须从某处获取矩形,例如, CWnd::GetClientRect