OnDraw以外で – プログラミング – Home

通知
すべてクリア

OnDraw以外で

固定ページ 1 / 2

ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

OnDraw以外でpDCを使いたいのですがどうすればいいのでしょうか。


引用解決済
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

CWnd::GetDC()とかでしょうか。


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

CWnd::GetDC()をつかってみたましたが
'pDC' : 定義されていない識別子です。とエラーがでます


返信引用
monkey
 monkey
(@monkey)
ゲスト
結合: 21年前
投稿: 70
 

宣言してます?

CPaintDC* pDC;


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

いけました すみませんでした
お聞きしたいのですが
例えばキーボードのzを押したら
bmpがでてx座標をすすみx座標+60ぐらいしたらそのbmp
がきえるようにしたいのですがどうすればいいでしょうか。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

キーボードのzを押したら
bmpがでてx座標をすすみx座標+60ぐらいしたらそのbmp
がきえるようにすればいいと思います、としか答えられないような気がする。

質問が抽象的過ぎます。
どこがわからないのでしょうか?

キーボードのzを押したことの検出法
bmpの出し方
bmpの動かし方
x座標+60ぐらいしたらそのbmpが消えるようにする方法


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

すいません
動かしかたがわかりません。


返信引用
warishita
 warishita
(@warishita)
ゲスト
結合: 21年前
投稿: 1
 

アニメと同じ。
ちょっとづつ位置をずらしながら描く。


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

一部なんですが
CArray(int,int)b;
でbに0をいれfor文で

for(a=pDoc->b;a<100;a++){
   pDoc->m_user.x += a; pDoc->b.Add(1);
}
としたんですがa=pDoc->bの部分でエラーがでます


返信引用
monkey
 monkey
(@monkey)
ゲスト
結合: 21年前
投稿: 70
 

> CArray(int,int)b;

CArrayはクラステンプレートだから,こんな書き方はないはず.

> bに0をいれ

仮に,bがCArray< int, int >のオブジェクトだったとしたら,それに0を入れるとは?

> a=pDoc->b

b( CArray< int, int >オブジェクト )をaに代入する?
aの型は何?


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

すいませんでした。できました。

warishitaさんがいってたアニメーションなんですが
for文をつかって座標を1個ずつずらしていったんですが
はやくて移動としてるというより瞬間移動みたいになってしまうのですが
どうすればいいでしょうか


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

タイマーか sleep() かを用いて時間を稼いでください

それから、いわゆるあなたの環境(OSやコンパイラーやのバージョン、
MFC を使うかどうか、アプリケーションの種類など)に付いても
きちんと示して下さい


返信引用
ロム
 ロム
(@ロム)
ゲスト
結合: 21年前
投稿: 7
Topic starter  

タイマーのつかいかたがよくわかりませんが

for(int a=0;a<50;a++){
pDC->BitBlt(pDoc->m_user.x +=1 ,
pDoc->m_user.y,48,48,&MemDC1,0,0,SRCCOPY);

としていたのですが
タイマーをつかうと
for(int a=0;a<50;a++){
    SetTimer(1,1000,NULL);
    pDC->BitBlt(pDoc->m_user.x ,pDoc->m_user.y,48,48,&MemDC1,0,0,SRCCOPY);

}
でいいのでしょうか?

>それから、いわゆるあなたの環境(OSやコンパイラーやのバージョン、
>MFC を使うかどうか、アプリケーションの種類など)に付いても
>きちんと示して下さい
VC++ 6.0で
SDI生成しています


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

>タイマーをつかうと
>for(int a=0;a<50;a++){
>    SetTimer(1,1000,NULL);
>    pDC->BitBlt(pDoc->m_user.x ,pDoc->m_user.y,48,48,&MemDC1,0,0,SRCCOPY);
>
> }
>でいいのでしょうか?

人に尋ねる前にどの程度調べたのでしょうか
SetTimer() の使い方のどこがわかりませんか?
何で(google、MSDN ライブラリー、実行してみた、その他)どのように調べましたか?


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

うーん。これだと一から教えないといけないんですかねぇ。
掲示板で一から十まで手取り足取り教えてくださいというのは
勘弁してください。
こういう文字でしかやり取りが出来ない場所でそれは無理と言う物です。
手取り足取りということであれば、そういうことを教えてくれる学校に
行って習うとか、身近に教えてくれる人を探すとかしてくださいね。

こういう掲示板は、基本的にヒントをもらう場で解決はあなた自身が
やらなくてはなりません。
ですから、もらった情報で何とかできる程度の知識はないと解決は
難しいと思いますよ。


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました