2019-01-01

anond:20190101161939

次の解説

staticキーワードを付けることで

クラス内にグローバル関数から呼べる関数を作る

これでHWNDを通して

グローバル関数にthisポインタを伝える

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}
  • なんか、Visual Studioが自動生成するコードじゃ 面白くないよね 適当にMyWindowクラスに したてあげてみよっか? PeekMsgじゃなくて MsgWaitを使った タイマー有りのマルチパンプとキー入力 ...

    • 年末年始 ちょっとづづ ゆっくりやるね

      • // WindowsProject7.cpp: アプリケーションのエントリ ポイントを定義します。//#include "stdafx.h"#include "WindowsProject7.h"#define MAX_LOADSTRING 100// グローバル変数:HINSTANCE hInst; ...

        • // WindowsProject7.cpp: アプリケーションのエントリ ポイントを定義します。//#include "stdafx.h"#include "WindowsProject7.h"#define MAX_LOADSTRING 100// グローバル変数:HINSTANCE hInst; ...

          • 解説を入れておくと グローバル関数のリストに 自分自身をコンストラクタで登録 デストラクタで削除する簡単なシステムを作る 商業だとこんな雑ではダメだけど テストならこれでOK s...

            • 次の解説 staticキーワードを付けることで クラス内にグローバル関数から呼べる関数を作る これでHWNDを通して グローバル関数にthisポインタを伝える static MyWindow * find(HWND key) { std::list&l...

              • 解説 この部分でfindを呼んで ペアのthis関数を見つけて グローバル関数からクラスメソッドを呼び出す 実質このtargetがthisポインタ相当になって this->OnPaintと呼ぶのと同じ効果を出し...

                • みやすいように フルソース 青い■を表示するだけ // WindowsProject7.cpp: アプリケーションのエントリ ポイントを定義します。//#include "stdafx.h"#include "WindowsProject7.h"#define MAX_L...

                  • ソース全部だと長いけど ようするに 違いはこの部分 CreateSolidBrush が 色を決めている Rect で位置と大きさを FillRectで書いている 英語が読めればかなり簡単な OnPaint=作画関数 BOOL On...

                    • タイマーを使ったアニメーションを付けた // WindowsProject7.cpp: アプリケーションのエントリ ポイントを定義します。//#include "stdafx.h"#include "WindowsProject7.h"#define MAX_LOADSTRING 100...

                      • 描画部分の違い 変数 y をつかって 高さが8までで移動するように yが変わると■のいちも変わるから タイマーで呼び出されるたbに 下へ 下へと作画される だから まぁ アニメー...

                        • こんな感じ GetMessageの上にタイマーも扱える MsgWaitForMultipleObjectsExを追加 GetMessageだとタイマーを処理できないのでPeekMessageに変更 >なぜかは ちょっと考えると面白い Getのときは必要な...

                          • 次回 キー処理 ちなみに、グローバル関数>クラスメソッドのやりかたは 雑なやりかただけど書いてあるから クラス化の利点を生かして 同時にWindowを2枚出して 同じ処理をしてみ...

                            • テトリス風?プログラムに向けて 第何回だろうな キー入力を追加した まだ、何を押してもブロックが右に移動するだけ(右端にいくと左にワープ) タイマーで自動落下   でもまぁ ...

                              • https://anond.hatelabo.jp/20190103154644   だいたい一式 せつめいもついてる いまなら、Q&Aがあるていど 無料でついてくる(w) ><が <とかに置き換わってるけど 一番最初に 無料...

                              • で 次は キー入力が右しかないけど これじゃぁ テトリスっぽくないから ブロックの作画をもうちょっと 本格的にしてみよっか?

                                • これで、ブロックを4つ書くからテトリス風 BOOL WriteBox() { HDC hdc = GetDC(hWnd); HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246)); int width = 24; RECT Rect = { 0,0,48,48 }; BOOL ret; Rect.left = width * x + 1; Rect.rig...

                      • つ https://anond.hatelabo.jp/20190101174449 いまコレの解説中

        • あまり関係ないけど せっかくクラス化したから Windowを2枚開けるようにすると おもしろいよね。 とはいえ、そのまえに キー入力と作画をやるね その次は タイマー 多分そのぐ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん