※ ChatGPTを利用し、要約された質問です(原文:デスクトップをサブクラス)
デスクトップをサブクラス化する方法
このQ&Aのポイント
DLLを使用せずにデスクトップをサブクラス化する方法について教えてください。
デスクトップ以外のウィンドウは何度もサブクラス化を行ってきましたが、デスクトップの場合は特殊なのでしょうか。
試しにDLLを使用せずにデスクトップをサブクラス化してみましたが、MessageBeepが実行されませんでした。
デスクトップ以外のサブクラスなら何度もやったことがあります。
DLLを使わずにデスクトップをサブクラスにできますか?
DLLを使わずにデスクトップをサブクラス化しようとしたけど、
サブクラスの対象がデスクトップだと特殊なのか、
サブクラスにできていないみたいでした。
MessageBeep(0xFFFFFFFF);
が実行されなかったからそう思いました。
FARPROC Org_Proc;
LRESULT CALLBACK DeskProc(HWND, UINT, WPARAM, LPARAM);
OrgProc = (FARPROC)GetWindowLong(HWND_DESKTOP, GWL_WNDPROC);
SetWindowLong(HWND_DESKTOP, GWL_WNDPROC, (LONG)DeskProc);
LRESULT CALLBACK DeskProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
if(msg == WM_LBUTTONDOWN)MessageBeep(0xFFFFFFFF);
return CallWindowProc((WNDPROC)Org_Proc, hWnd, msg, wp, lp);
}
お礼
ありがとうございます。