2019-01-01

anond:20190101162044

解説

この部分でfindを呼んで ペアのthis関数を見つけて

グローバル関数からクラスメソッドを呼び出す

実質このtargetがthisポインタ相当になって

this->OnPaintと呼ぶのと同じ効果を出してくれる

これがグローバル関数からクラスメソッド基本的呼び方になる

    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint();


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
記事への反応 -
  • 年末年始 ちょっとづづ ゆっくりやるね

    • // 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枚開けるようにすると おもしろいよね。 とはいえ、そのまえに キー入力と作画をやるね その次は タイマー 多分そのぐ...

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

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