ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
-
7
- 記事: 473
- 登録日時: 2005年5月31日(火) 18:51
- お住まい: 新潟県
-
連絡する:
#1
投稿記事
by 7 »
一つのウィンドウプロシージャに対し複数のコントロールをサブクラス化させたんですが、(変な日本語?)
ウィンドウプロシージャの最後でCallWindowProc()関数を呼び出した時に渡す元のウィンドウプロシージャのアドレスとして、何を渡せばいいんでしょう?
ウィンドウプロシージャとコントロールが一対一の関係なら分かるのですが、一体多としたい場合の方法が分かりません...。
-
Toshi
- 記事: 98
- 登録日時: 2005年7月19日(火) 19:47
- お住まい: 山形県
-
連絡する:
#2
投稿記事
by Toshi »
サブクラス化したウィンドウがすべて同じクラスのものであれば、
そのクラスが持っていた元々のプロシージャを呼べばよいでしょう。
異なるクラスだった場合、あらかじめウィンドウ ハンドルとクラスが持っていた元々のプロシージャを
一対一で対応付けておいた上で、新しいプロシージャでは、渡されて来たウィンドウ ハンドルから
元々の対応付けられたプロシージャを割り出して呼ぶか、
あるいはそもそもクラス毎にサブクラス化の為のプロシージャを用意した方が簡単かもしれません。
-
ゲスト
#3
投稿記事
by ゲスト »
-
7
- 記事: 473
- 登録日時: 2005年5月31日(火) 18:51
- お住まい: 新潟県
-
連絡する:
#4
投稿記事
by 7 »
「異なるクラスだった場合、あらかじめウィンドウ ハンドルとクラスが持っていた元々のプロシージャを
一対一で対応付けておいた上で、新しいプロシージャでは、渡されて来たウィンドウ ハンドルから
元々の対応付けられたプロシージャを割り出して呼ぶ」っていうのは自分も考えてはみたんですが、そのやり方が思いつかず却下していました...。
が、ゲストさんの教えてくれた所でその通りの方法が示されておりズバっと解決しました。プロパティシート?と呼ばれる機能でしょうか。
Toshiさん、ゲストさんどうもありがとうございました。