Re: [問題] 如何用MFC實做一個情況:按鍵盤讓圖形移動
※ 引述《shorttime (鄉民)》之銘言:
: 遇到的問題: (題意請描述清楚)
: 我想要用MFC實作一種情況:
: 假設存在一個幾何圖形 座標位於(0,0)
: 現在我按下"→"
: 這個圖形就往右移動
: 請問 這該如何實作呢?
: 希望得到的正確結果:
: (1)假設存在一個圖形 位於(0,0)
: (2)按下鍵盤"→"
: (3)此圖形消失了
: (4)新的圖形出現了 位於(0,1)
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: MFC
: 補充說明:
: 我目前卡在的問題是 如何做到上述的(3)
: 也就是不知道怎麼讓原本的圖形消失....
: 可否請知道的人指導一下
: 謝謝....
→
03/15 09:18,
03/15 09:18
→
03/15 09:18,
03/15 09:18
推
03/15 11:00,
03/15 11:00
感謝兩位版友的答覆
不好意思...要如何做到把畫面重新畫成一個圖形在(0,1)的樣子呢?
我的問題是卡在沒辦法重新畫
因為我畫出了(0,1) 結果(0,0)的圖形卻還存在
這是我拙劣的程式碼(檔名:move_picture.cpp):
#include <afxwin.h>
#include "move_picture.h"
CMyApp myApp;
int X = 0;
/////////////////////////////////////////////////////////////////////////
// CMyApp member functions
BOOL CMyApp::InitInstance ()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow (m_nCmdShow);
m_pMainWnd->UpdateWindow ();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////
// CMainWindow message map and member functions
BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
ON_WM_PAINT ()
ON_WM_KEYDOWN ()
END_MESSAGE_MAP ()
CMainWindow::CMainWindow ()
{
Create(NULL,_T("move picture"),WS_OVERLAPPEDWINDOW);
}
void CMainWindow::OnPaint ()
{
CPaintDC dc (this);
DrawEllipse(&dc); //程式一開始執行時 先畫一個圓
}
void CMainWindow::DrawEllipse (CDC* pDC)
{
//這個function是詳細定義如何畫圓
CPen pen (PS_SOLID, 16, RGB (0, 0, 0));
CPen* pOldPen = pDC->SelectObject (&pen);
pDC->Ellipse(0,0,100,100);
pDC->SelectObject (pOldPen);
}
void CMainWindow::OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (nChar) {
case VK_RIGHT:
//如果按下鍵盤的"->" 就會執行此部份
// 會在原本右邊一點點的位置畫出一個新的圓
//但是原本位置的圓還是存在
X++;
CClientDC dc (this);
dc.Ellipse(0+X,0,100+X,100);
break;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.18.69
※ 編輯: shorttime 來自: 112.104.18.69 (03/16 08:05)
推
03/16 16:08, , 1F
03/16 16:08, 1F
→
03/16 18:27, , 2F
03/16 18:27, 2F
→
03/16 18:29, , 3F
03/16 18:29, 3F
→
03/16 18:29, , 4F
03/16 18:29, 4F
推
03/17 02:58, , 5F
03/17 02:58, 5F
→
03/17 02:58, , 6F
03/17 02:58, 6F
→
03/17 03:00, , 7F
03/17 03:00, 7F
→
03/18 11:00, , 8F
03/18 11:00, 8F
→
03/18 11:01, , 9F
03/18 11:01, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章