CCustomControl::DynamicWindowProc

CCustomControl::DynamicWindowProcを修正。
CustomControl.cppにて、

DynamicWindowProcでも、プロシージャの振り分けをする。

これでようやくボタンもエディットも機能する。
これでようやくボタンもエディットも機能する。

これでようやくボタンもエディットも機能する。

Test/winapi/CCustomControl/DynamicWindowProc/src/CCustomControl at master · bg1bgst333/Test · GitHub

CCustomControl::StaticWindowProc

CCustomControl::StaticWindowProcをさらに修正していく。
CustomControl.hで、

m_mapBaseWindowProcMapのキーは、LPCTSTRは間違いで、tstringにしないといけなかった。
DynamicWindowProcも追加。
CustomControl.cppは、

StaticWindowProcはこう書く。

DynamicWindowProcは、まずはこうしておく。
あとMainWindow.cppだが、

ウィンドウクラス名を間違えてた。
また、スタイルをつけ忘れてたのでそれも。

ただ、まだこの状況では正しく表示できてない。
ただ、まだこの状況では正しく表示できてない。

ただ、まだこの状況では正しく表示できてない。

Test/winapi/CCustomControl/StaticWindowProc/src/CCustomControl at master · bg1bgst333/Test · GitHub

CCustomControl::Create

CCustomControl::Createには、ウィンドウプロシージャをStaticWindowProcに差し替えるという役割がある。
CustomControl.hで、

m_mapBaseWindowProcMap、StaticWindowProcを追加。
CustomControl.cppは、

StaticWindowProcへの差し替え。
元々のプロシージャはm_mapBaseWindowProcMapに登録。
MainWindow.hで、

CCustomControlは2つ用意。
MainWindow.cppは、

ユーザコントロール、カスタム(ボタン)、カスタム(エディット)の生成と破棄。

差し替えたので、ここに来る。
差し替えたので、ここに来る。

差し替えたので、ここに来る。

これだけだと、ボタンは表示されないし、エディットはマウスカーソルが変わるだけでボーダーさえ出ない。
これだけだと、ボタンは表示されないし、エディットはマウスカーソルが変わるだけでボーダーさえ出ない。

これだけだと、ボタンは表示されないし、エディットはマウスカーソルが変わるだけでボーダーさえ出ない。

Test/winapi/CCustomControl/Create/src/CCustomControl at master · bg1bgst333/Test · GitHub

HttpServerUtility

サーバに関する様々なプロパティや、ヘルパーメソッドを持ってるのが、HttpServerUtilityである。

HttpServerUtility クラス (System.Web) | Microsoft Docs

Default.aspxで、

MachineNameプロパティで、マシン名を出してみる。

出た。
出た。

出た。

Sample/aspnet/HttpServerUtility/HttpServerUtility/src/HttpServerUtility_ at master · bg1bgst333/Sample · GitHub

CCustomControl

既存のコントロールを改造できるCCustomControlを実装する。
CustomControl.hは、

最初はこう書く。
CustomControl.cppは、

最初はこう書く。
MainWindow.hで、

使えるようにして、
MainWindow.cppで、

こんな感じでウィンドウクラス"BUTTON"なウィンドウとして生成。

確かにボタンになった
確かにボタンになった

確かにボタンになった。

Test/winapi/CCustomControl/CCustomControl/src/CCustomControl at master · bg1bgst333/Test · GitHub

Page.Server

サーバに関する情報はPage.Serverが持っている。

Page.Server プロパティ (System.Web.UI) | Microsoft Docs

Default.aspxで、

こうすると、

Serverプロパティの実体はHttpServerUtilityインスタンス
Serverプロパティの実体はHttpServerUtilityインスタンス

Serverプロパティの実体はHttpServerUtilityインスタンス

Sample/aspnet/Page/Server/src/Page_ at master · bg1bgst333/Sample · GitHub

CWindow::DeleteCommandHandler

コマンドハンドラの削除処理は、CWindow::DeleteCommandHandlerにまとめる。
Window.hで、

DeleteCommandHandlerを追加。
Window.cppで、

このように定義。
MainWindow.cppで、

とする。

動作変わらず
動作変わらず

動作変わらず。

Test/winapi/CWindow/DeleteCommandHandler/src/CWindow at master · bg1bgst333/Test · GitHub