VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/06/06(Mon) 14:39
投稿者ダンボ
URL
タイトル【再質問】コントロールオブジェクトの保存・リストア

というわけでSetPropを利用してコントロールオブジェクトの保存・リストアを
試みているのですが、オブジェクト変数の扱いに苦慮しています。
SetProp/GetPropで保存・リストアできるのはLong値なので、オブジェクトそのものは
駄目ですね。実装はおそらくインスタンスへのポインタだと思うから似てはいるけれど。
下記はテストのために何通りかコーディングしてみました。

Public Function WheelOpen(usrCNT As Control) As Long
Dim p_hWnd As Long          'original Handle
Dim rc As Long
Dim XX As Control
    p_hWnd = SetWindowLong(usrCNT.hwnd, GWL_WNDPROC, AddressOf SubClassProc)
    rc = SetWindowLong(usrCNT.hwnd, GWL_USERDATA, p_hWnd)  '元hWndを保存
(a) rc = SetProp(usrCNT.hwnd, "CNT", usrCNT)  'コントロールそのものを保存したいのだが
(b) XX = GetProp(usrCNT.hwnd, "CNT")   '実行時エラー:オブジェクト変数またはWithブロック変数が設定
されていません
(c) Set XX = GetProp(usrCNT.hwnd, "CNT")  'コンパイルエラー:型が一致しません
(d) rc = GetProp(usrCNT.hwnd, "CNT")    'エラーにはならないが戻り値は0
End Function


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -