CCustomControl::DynamicWindowProcを修正。
CustomControl.cppにて、
DynamicWindowProcでも、プロシージャの振り分けをする。
これでようやくボタンもエディットも機能する。
Test/winapi/CCustomControl/DynamicWindowProc/src/CCustomControl at master · bg1bgst333/Test · GitHub
CCustomControl::DynamicWindowProcを修正。
CustomControl.cppにて、
DynamicWindowProcでも、プロシージャの振り分けをする。
これでようやくボタンもエディットも機能する。
Test/winapi/CCustomControl/DynamicWindowProc/src/CCustomControl at master · bg1bgst333/Test · GitHub
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には、ウィンドウプロシージャを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 クラス (System.Web) | Microsoft Docs
Default.aspxで、
MachineNameプロパティで、マシン名を出してみる。
出た。
既存のコントロールを改造できる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 プロパティ (System.Web.UI) | Microsoft Docs
Default.aspxで、
こうすると、
Serverプロパティの実体はHttpServerUtilityインスタンス。
Sample/aspnet/Page/Server/src/Page_ at master · bg1bgst333/Sample · GitHub
コマンドハンドラの削除処理は、CWindow::DeleteCommandHandlerにまとめる。
Window.hで、
DeleteCommandHandlerを追加。
Window.cppで、
このように定義。
MainWindow.cppで、
とする。
動作変わらず。
Test/winapi/CWindow/DeleteCommandHandler/src/CWindow at master · bg1bgst333/Test · GitHub