2012-07-27 105 views
0

我是VC++的新手,現在已經有幾次了,這是第三個程序,即使在成功構建之後也不會給出輸出。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

問題可能是您用於獲取寬度和高度的矩形未初始化。你必須從某個地方得到矩形,參見例如CWnd::GetClientRect

+0

謝謝! :)我不知道我怎麼忘記了.. – vin 2012-07-27 10:15:04