求助!!!萬分感謝!!! C2660:'ScreenToClient'funtion does not take 1 parameters解決方法

代碼如下
void CMyDlg::ChangeSize(UINT nID, int x, int y) //nID為控制元件ID,x,y分別為對話框的當前長和寬
{
CWnd *pWnd;
void CWnd::GetDlgItem(int nID,HWND *phwnd)const;
if(pWnd!=NULL) //判斷是否為空,因為在視窗創建的時候也會呼叫OnSize函式,但是此時各個控制元件還沒有創建,Pwnd為空
{
CRect rec;
pWnd->GetWindowRect(&rec); //獲取控制元件變化前的大小
ScreenToClient(&rec); //將控制元件大小裝換位在對話框中的區域坐標
rec.left=rec.left*x/m_rect.Width(); //按照比例調整空間的新位置
rec.top=rec.top*y/m_rect.Height();
rec.bottom=rec.bottom*y/m_rect.Height();
rec.right=rec.right*x/m_rect.Width();
pWnd->MoveWindow(rec); //伸縮控制元件
}
}
uj5u.com熱心網友回復:
ChangeSize 是不是宣告為了static 型別? 去掉另外 CWnd *pWnd = GetDlgItem(nID);
uj5u.com熱心網友回復:
謝謝解答! CWnd *pWnd = GetDlgItem(nID); 果然對了!我還是個入門,請問在哪里可以看到ChangeSize 是不是宣告為了static 型別?
麻煩你了。
uj5u.com熱心網友回復:
CWnd::ScreenToClientvoid ScreenToClient( LPPOINT lpPoint ) const;
void ScreenToClient( LPRECT lpRect ) const;
這是 CWnd 類的
BOOL ScreenToClient(
HWND hWnd, // window handle for source coordinates
LPPOINT lpPoint // address of structure containing coordinates
);
這是 windows API
uj5u.com熱心網友回復:
謝謝!我懂了~轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/156112.html
標籤:基礎類
上一篇:畫貝塞爾曲線和曲面問題
