HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0902
spiderFooty2エディットコントロールでファイルのD&Dを取得2解決


spider

リンク

2012/9/2(Sun) 09:42:04|NO.49006

Footy2エディットコントロールを使っていて、
ファイルのD&Dを取得したいと思ったのですが、
oncmdではHSPのウィンドウで受けてしまい、メニューバーなどに
ドロップしても反応してしまいます。

そこで、hscallbk.dllとWinAPIを使ってFooty2エディットコントロールの
ウィンドウプロシージャを交換しようと試みたんです。しかし、実行したところ
Footy2エディットコントロールが固まってしまうんです。
調べた結果SetWindowLongでウィンドウプロシージャを変更するところで
固まってしまうようです。

これは、Footy2のバグなのでしょうか?
それとも、やり方が間違っているのでしょうか?



この記事に返信する


inovia

リンク

2012/9/2(Sun) 11:29:31|NO.49011

Footy2を張り付ける子ウィンドウを1つ用意して、それに対してD&Dの設定をすればいいのではないでしょうか?
以下サンプルはspiderさんが以前投稿したスクリプトを改造しています。
http://hsp.tv/play/pforum.php?mode=pastwch&num=46431


#include "user32.as" #include "gdi32.as" #include "shell32.as" #include "hscallbk.as" #include "Footy2.as" //定数を定義 #define WM_DESTROY 0x0002 #define WM_CLOSE 0x0010 #define WM_QUIT 0x0012 #define WM_DROPFILES 0x0233 #define WS_CHILD 0x40000000 #define WS_VISIBLE 0x10000000 // ダミーの関数を定義 #uselib "" #func _WndProc "" int,int,int,int // コールバック関数登録 setcallbk Proc, _WndProc, *WndProc // ウィンドウクラスの登録 ClassName = "Footy2EditClass" LoadIcon 0, 32512 hIcon = stat LoadCursor 0, 32512 hCursor = stat GetStockObject 0 hBrush = stat dim wcex, 12 wcex.0 = 48 wcex.1 = 0 wcex.2 = varptr(Proc) wcex.3 = 0 wcex.4 = 0 wcex.5 = hInstance wcex.6 = hIcon wcex.7 = hCursor wcex.8 = hBrush wcex.9 = 0 wcex.10= varptr(ClassName) wcex.11= hIcon RegisterClassEx varptr(wcex) // メニューを作ってみる // WM_COMMANDメッセージ oncmd gosub *onCommand, 0x0111 CreateMenu hMenu = stat AppendMenu hMenu, $10, 0, "Test" SetMenu hwnd, hMenu DrawMenuBar hwnd // Footy2を貼り付ける子ウィンドウを作成 CreateWindowEx 0, "Footy2EditClass", "Footy2EditClass", WS_CHILD | WS_VISIBLE, 0, 0, 400, 400, hwnd, 0, hInstance, 0 hFooty2EditWnd = stat // D&D受付 DragAcceptFiles hFooty2EditWnd, 1 // Footy2コントロール貼り付け Footy2Create hFooty2EditWnd, 0, 0, 400, 400, VIEWMODE_NORMAL title "D&Dをしてみるなり〜" pos 0, 400 button gosub "button", *btn stop *WndProc hWindow = callbkarg(0) Massage = callbkarg(1) wp = callbkarg(2) lp = callbkarg(3) switch (Massage) case WM_CLOSE DestroyWindow hWindow swbreak case WM_DESTROY DestroyWindow hWindow swbreak case WM_DROPFILES hDrop = wp sdim fname, 261 DragQueryFile hDrop, 0, varptr(fname), 260 dialog fname DragFinish hDrop swbreak default DefWindowProc hWindow, Massage, wp, lp swbreak swend return *onCommand return *btn return



spider

リンク

2012/9/2(Sun) 13:28:21|NO.49012

>inovia様
おおありがとうございます。
その手がありましたか。
もうD&Dには困らなさそうです。



ONION software Copyright 1997-2023(c) All rights reserved.