Test

CPicture::OnVScroll

CPicture::OnVScrollで垂直方向スクロールバーも実装する。 Picture.hで、OnVScrollと、変化量を表すm_dyを追加。 Picture.cppで、OnVScrollを実装。OnPaintも垂直成分を追加。ビットマップサイズの取得とスクロールバーの初期化をSetBitmapに移動。 MainWin…

CPicture::OnHScroll

CPicture::OnHScrollを実装して、水平方向にビットマップをスクロールできるようにする。 Picture.hは、OnHScrollを追加。 またprivateで水平方向の変化量m_dxも追加。 Picture.cppで、再描画処理と水平方向スクロール処理。 MainWindow.cppは、ビットマップ…

CPicture::Create

CPicture::Createを実装する。 Picture.hに、第1引数がウィンドウ名のCreateを追加。 Picture.cppで、CPicture::Createの中では、CUserControl::Createで、ウィンドウクラス名は"CPicture"とする。 MainWindow.cppで、ピクチャーコントロールの生成に加えて…

CPicture::RegisterClass

改めて、CPictureをCUserControlの派生クラスとして作り直し、今回はCPicture::RegisterClassも実装する。 Picture.hで、CUserControlを継承元とする。 Picture.cppで、CStaticCoreだったところはCUserControlに。RegisterClassを呼ぶと、"CPicture"でウィン…

CPicture(スクロール処理実装調査)

現行のCPictureにスクロール機能を実装しようと調査したら、いろいろ問題があったので、書いていく。 まず、メニュー付きのウィンドウにスクロールバー付けて、水平方向スクロールバーの位置、垂直方向スクロールバーの位置をOnPaint時に描画するだけの場合…

CWindow::OnHScroll

CWindow::OnHScrollで、水平方向スクロールバーの制御をする。 Window.hで、OnHScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_HSCROLLでOnHScrollを呼ぶようにして、OnHScrollは、水平方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…

CWindow::OnVScroll

CWindow::OnVScrollで、垂直方向スクロールバーの制御をする。 Window.hで、OnVScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_VSCROLLでOnVScrollを呼ぶようにして、OnVScrollは、垂直方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…

CPicture::SetBitmap

CPicture::SetBitmapでビットマップをセットして、CPicture::OnPaintで表示する。 CStaticCoreとは違い、BitBltなどを使って描画する。 Picture.hは、SetBitmap、m_hBitmap、m_hOldBitmapを追加。 Picture.cppだが、SetBitmapは、このようにSelectObjectでm_…

CPicture::OnCreate

CPicture::OnCreateで、デバイスコンテキスト関連の準備をする。 Picture.hで、OnCreateを追加。 Picture.cppで、GetDCでm_hDCを取得したら、それを使って今度はCreateCompatibleDCでm_hMemDCを生成する。 m_hDCを取得できたm_hDCを取得できた。 m_hMemDCも…

CPicture::Destroy

まず先に、CPicture::Destroyを実装する。 Picture.hは、メンバ関数Destroyを追加。 Picture.cppで、m_hMemDCはDeleteDCで破棄、m_hDCはReleaseDCで解放。 これが表示されて、閉じた後に、これが表示されて、閉じた後に、 ここにきて、ここにきて、 ここにき…

CPicture

コンストラクタなどを追加する。 Picture.hは、コンストラクタ、デストラクタ、デバイスコンテキストハンドルm_hDC、メモリデバイスコンテキストハンドルm_hMemDCを追加。 Picture.cppは、コンストラクタで、m_hDCとm_hMemDCの値をNULLで初期化。 OnPaintで…

CPicture::OnPaint

CPictureクラスを実装するが、まずはOnPaintから。 Picture.hは、OnPaintのみ。 Picture.cppは、OnPaintでは、TextOutで"CPicture"と描画。 あとはMainWindow.hで、CStaticCoreをCPictureに替えて、MainWindow.cppで、こちらもCPictureに。 こうなるこうなる…

CCustomControl::OnPaint

CCustomControl::OnPaintを実装して、描画動作を変えてみる。 その前に、 これを置いておいてこれを置いておいて、MainWindow.cppで、これだけだったら、 bitmap1.bmpが表示されるbitmap1.bmpが表示される。 CustomControl.hで、OnPaintを追加し、 CustomCon…

CWindow::OnPaint

ウィンドウの描画を要求された時のハンドラCWindow::OnPaintを実装する。 Window.hで、を追加。 Window.cppで、ここは何もしない。 DynamicWindowProcでは、こうしておく。 MainWindow.hにも、OnPaint追加。 MainWindow.cppは、TextOutで"CWindow"と描画して…

CBitmap::LoadImage

ビットマップリソースではなく、ビットマップファイルをロードするようにする。 Bitmap.hで、LoadImageを追加。 引数はWin32APIのLoadImageと一緒のバージョンにする。 Bitmap.cppは、Win32APIのLoadImageを呼んでいる。 MainWindow.cppで、CBitmap::LoadIma…

CStaticCore::SetBitmap

CStaticCore::SetBitmapでビットマップをセットする。 リソース追加リソース追加。 BitmapをインポートBitmapをインポート。 以前のこれをインポート以前のこれをインポート。 これが出るけど、「はい」で。これが出るけど、「はい」で。 これも「はい」これ…

CBitmap::operator HBITMAP

HBITMAP演算子でビットマップハンドルを取り出すようにする。 Bitmap.hは、m_hBitmapをprivateにして、publicにHBITMAP演算子を追加。 Bitmap.cppは、HBITMAP演算子は、m_hBitmapを返すだけ。 MainWindow.cppは、取り出し方が、m_pBitmap->m_hBitmapから、(H…

CBitmap::LoadBitmap

CBitmap::LoadBitmapでビットマップをロードする処理を実装する。 リソースを追加リソースを追加。 Bitmapを選択Bitmapを選択。 こうなる。こうなる。 CBitmapの時のプロジェクトをベースにしてるから、ここで上書き保存すると、 リソースがVSの形式じゃない…

CBitmap

ビットマップオブジェクトCBitmapを追加。 Bitmap.hは、とりあえずは、ビットマップハンドルとコンストラクタとデストラクタだけ。 Bitmap.cppは、MainWindow.cppは、生成したばかりの状態で、ビットマップハンドルを表示。 最初は、無いから、0x00000000最…

CStaticCore::Create(w, s, r, p, m, i)

CStaticCore::CreateのRECTバージョンを追加する。 StaticCore.hで、StaticCore.cppで、MainWindow.cppで、RECTを指定。 こうなる。こうなる。Test/winapi/CStaticCore/Create_w_s_r_p_m_i/src/CStaticCore at master · bg1bgst333/Test · GitHub

CEditCore::Create(w, s, r, p, m, i)

CEditCore::CreateのRECTバージョンを追加する。 EditCore.hで、EditCore.cppで、MainWindow.cppで、RECTを指定。 こうなる。こうなる。Test/winapi/CEditCore/Create_w_s_r_p_m_i/src/CEditCore at master · bg1bgst333/Test · GitHub

CButtonCore::Create(w, s, r, p, m, i)

CButtonCore::CreateのRECTバージョンを追加する。 ButtonCore.hで、ButtonCore.cppで、MainWindow.cppで、RECTを指定。 こうなる。こうなる。Test/winapi/CButtonCore/Create_w_s_r_p_m_i/src/CButtonCore at master · bg1bgst333/Test · GitHub

CCustomControl::Create(c, w, s, r, p, m, i)

CCustomControlのCreateのRECTバージョンが無かったので、そちらをやる。 CustomControl.hは、これを追加。 CustomControl.cppは、こう定義。 MainWindow.cppは、 "Edit1"だけRECTバージョン。 変わらず表示できる変わらず表示できる。Test/winapi/CCustomCo…

CStaticCore::Create

そして、CStaticCore::Create。 StaticCore.cppは、ウィンドウクラス名は"Static"。 スタイルは指定のものだけ。 MainWindow.cppで、生成はこれまで通り。 SS_SIMPLEなどスタイルは外から付ける。スタティックコントロールのウィンドウテキストを変更。 メニ…

CEditCore::Create

続いて、CEditCore::Create。 EditCore.cppは、ウィンドウクラス名は"Edit"で、こっちはスタイルをゴテゴテ付けてる。 MainWindow.cppで、生成はこれまで通り。今度は、エディットコントロールのウィンドウテキストを変更。 メニューアイテム選択メニューア…

CButtonCore::Create

そいえば、CButtonCore::Createやってなかったので一応。 ButtonCore.cppで定義は、ウィンドウクラス名は"Button"固定。 スタイルは指定のものにBS_PUSHBUTTONを付加。 MainWindow.cppで、Createで生成はこれまでと同じ。今回は、メニューアイテム選択でボタ…

CStaticCore

スタティックコントロールの核となるCStaticCoreを実装する。 StaticCore.hは、StaticCore.cppは、あとは、MainWindow.cppで、こう使う。 このCreateだと、SS_SIMPLEとか、スタイルを指定する必要がある。 こう表示されるこう表示される。Test/winapi/CStati…

CWindow::Create(c, w, s, r, p, m, i)

CWindow::CreateのRECTバージョンを定義する。 Window.hで、ウィンドウの位置とサイズをRECTで指定するバージョンを定義。 Window.cppは、RECTからサイズを計算。 MainApplication.cppは、このようにRECTで指定。 指定のRECTからウィンドウを作成。指定のREC…

CWindow::Create(c, w, s, x, y, w, h, p, m, i)

そういえば、CWindow::Createのウィンドウクラスを指定する元々のバージョンをやっていなかったので、ここで扱う。CWindow::RegisterClassで、ウィンドウクラス名を仮に"Window1"に変更すると、CMainWindow::Createを使った場合、ウィンドウクラス名は"CMain…

CWindow::GetWindowText(rString)

tstring(TCHAR型のstd::string)でテキストを受け取れるオーバーロードを実装する。 Window.hで、こう書いて、 Window.cppで、こう書いて、 MainWindow.cppで、こう書く。 変わらずこんな感じ。変わらずこんな感じ。Test/winapi/CWindow/GetWindowText_rStrin…