ページ 1 / 1
ウィンドウプロシージャと複数のコントロール。
Posted: 2007年4月11日(水) 20:53
by 7
一つのウィンドウプロシージャに対し複数のコントロールをサブクラス化させたんですが、(変な日本語?)
ウィンドウプロシージャの最後でCallWindowProc()関数を呼び出した時に渡す元のウィンドウプロシージャのアドレスとして、何を渡せばいいんでしょう?
ウィンドウプロシージャとコントロールが一対一の関係なら分かるのですが、一体多としたい場合の方法が分かりません...。
Posted: 2007年4月11日(水) 21:22
by Toshi
サブクラス化したウィンドウがすべて同じクラスのものであれば、
そのクラスが持っていた元々のプロシージャを呼べばよいでしょう。
異なるクラスだった場合、あらかじめウィンドウ ハンドルとクラスが持っていた元々のプロシージャを
一対一で対応付けておいた上で、新しいプロシージャでは、渡されて来たウィンドウ ハンドルから
元々の対応付けられたプロシージャを割り出して呼ぶか、
あるいはそもそもクラス毎にサブクラス化の為のプロシージャを用意した方が簡単かもしれません。
Posted: 2007年4月12日(木) 00:15
by ゲスト
Posted: 2007年4月12日(木) 19:09
by 7
「異なるクラスだった場合、あらかじめウィンドウ ハンドルとクラスが持っていた元々のプロシージャを
一対一で対応付けておいた上で、新しいプロシージャでは、渡されて来たウィンドウ ハンドルから
元々の対応付けられたプロシージャを割り出して呼ぶ」っていうのは自分も考えてはみたんですが、そのやり方が思いつかず却下していました...。
が、ゲストさんの教えてくれた所でその通りの方法が示されておりズバっと解決しました。プロパティシート?と呼ばれる機能でしょうか。
Toshiさん、ゲストさんどうもありがとうございました。