Test

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…

CWindow::GetWindowText

CWindow::GetWindowTextを実装して、テキストを取得できるようにする。 Window.hで、GetWindowTextを追加。 Window.cppで、中で、Win32APIのGetWindowTextを呼んでる。 MainWindow.cppは、テキストの長さを取得して、その長さ + 1のバッファを用意し、取得し…

CWindow::GetWindowTextLength

今度はテキストを取得できるように、まずはCWindow::GetWindowTextLengthを実装して、テキストの長さを取得する。 Window.hで、GetWindowTextLengthを追加。 Window.cppにて、中で、Win32APIのGetWindowTextLengthを呼んでる。 MainWindow.hで、CButtonCore…

CWindow::SetWindowText

CWindow::SetWindowTextを実装して、テキストをセットできるようにする。 Window.hに、SetWindowTextを追加。 Window.cppでは、中で、Win32APIのSetWindowTextを呼んでる。 MainWindow.hで、メニューアイテムハンドラに加えて、ボタンハンドラも追加。 MainW…

CEditCore

今度は、エディットコントロールの核となるCEditCoreを実装する。 EditCore.hは、こう書いて、 EditCore.cppで、こうする。 MainWindow.cppは、こうする。 こうなる。エディットコントロールなので、"Edit1"から"ABCDE"に書き換えられる。Test/winapi/CEditC…

CButtonCore

CCustomControlを継承して、ボタンの核となるCButtonCoreを実装する。 ButtonCore.hで、こう書いて、 ButtonCore.cppで、こうする。 MainApplication.cppでは、今回、ユーザコントロール使わないので、その辺の記述は削除。 MainWindow.hは、コントロールはC…

CCustomControl::OnCreate

CCustomControl::OnCreateは既にあるのだが、これをCCustomControl::Createから呼び出すようにする。 ウィンドウ作成時のWM_CREATEは、BUTTONにしろ、EDITにしろ、既定のウィンドウクラスのウィンドウプロシージャのものが、差し替え前に呼ばれてしまう。 そ…

CCustomControl::OnDestroy

CCustomControl::OnDestroyで修正するのは、1つだけ。ウィンドウマップから、自身のウィンドウを削除するだけ。 動作は変わらない。Test/winapi/CCustomControl/OnDestroy/src/CCustomControl at master · bg1bgst333/Test · GitHub

CCustomControl::DynamicWindowProc

CCustomControl::DynamicWindowProcを修正。 CustomControl.cppにて、DynamicWindowProcでも、プロシージャの振り分けをする。 これでようやくボタンもエディットも機能する。これでようやくボタンもエディットも機能する。Test/winapi/CCustomControl/Dynam…

CCustomControl::StaticWindowProc

CCustomControl::StaticWindowProcをさらに修正していく。 CustomControl.hで、m_mapBaseWindowProcMapのキーは、LPCTSTRは間違いで、tstringにしないといけなかった。 DynamicWindowProcも追加。 CustomControl.cppは、StaticWindowProcはこう書く。Dynamic…

CCustomControl::Create

CCustomControl::Createには、ウィンドウプロシージャをStaticWindowProcに差し替えるという役割がある。 CustomControl.hで、m_mapBaseWindowProcMap、StaticWindowProcを追加。 CustomControl.cppは、StaticWindowProcへの差し替え。 元々のプロシージャは…

CCustomControl

既存のコントロールを改造できるCCustomControlを実装する。 CustomControl.hは、最初はこう書く。 CustomControl.cppは、最初はこう書く。 MainWindow.hで、使えるようにして、 MainWindow.cppで、こんな感じでウィンドウクラス"BUTTON"なウィンドウとして…