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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0617
考える人CreateWindowExでポップウィンドウを作成する3解決


考える人

リンク

2015/6/17(Wed) 18:03:56|NO.69820

質問ですが、
CreateWindowExでポップウィンドウを作成することはできますか?
RegisterClassExでウィンドウクラスを作成して、
CreateWindowExでウィンドウを作成する
という流れは調べてわかったのですが、いざプログラムを打ち込んでも
失敗してしまいました。わかる方教えてください。

#include "user32.as" Class="PopupWindowClass" WNDCLASSEX= strlen(WNDCLASSEX),$16CA0000,0,0,0,0,0,varptr(Class),0 RegisterClassEx varptr(WNDCLASSEX)//登録 winobj "PopupWindowClass","",$16CA0000 | $10000 | $40000,200,200//CreateWindowExのかわり if stat = -1:dialog "Error"//失敗時



この記事に返信する


nepisat

リンク

2015/6/17(Wed) 18:44:32|NO.69822

CreateWindowExを出してみる

#include "user32.as" #include "gdi32.as" #include "hscallbk.as" #uselib "" #func Prc "" int,int,int,int setcallbk Proc, Prc, *WProc GetWindowLong hwnd, -4 Old = stat Class = "PopupWindowClass" dim WNDCLASSEX, 12 WNDCLASSEX.0 = 48 WNDCLASSEX.1 = 0 WNDCLASSEX.2 = varptr(Proc) WNDCLASSEX.3 = 0 WNDCLASSEX.4 = 0 WNDCLASSEX.5 = g_hInstance WNDCLASSEX.6 = 0 WNDCLASSEX.7 = 0 WNDCLASSEX.8 = 0 WNDCLASSEX.9 = 0 WNDCLASSEX.10= varptr(Class) WNDCLASSEX.11= 0 RegisterClassEx varptr(WNDCLASSEX) if stat = -1:dialog "Error"//失敗時 CreateWindowEx 0, "PopupWindowClass", "", $16CA0000, 0x80000000, 0x80000000, 400, 400, 0, 0, g_Instance, 0 if stat = -1:dialog "Error"//失敗時 stop *WProc CallWindowProc Old, callbkarg(0), callbkarg(1), callbkarg(2), callbkarg(3) return
ちょくとさんのhscallbk.asが必要



科学太郎

リンク

2015/6/17(Wed) 19:26:55|NO.69823

> CreateWindowExでポップウィンドウを作成することはできますか?
コールバック関数を使える環境を整えない限りHSPでは出来ません。

・コールバック用モジュールができました
http://hsp.tv/play/pforum.php?mode=all&num=62130

これを使えばプロシージャ関数を使えると思いますが、
そんな使い方するぐらいならばC/C++言語を使った方がスマートですよ。

なぜ HSP で CreateWindowEx を使いたいのでしょうか?
winobj 命令でいろいろなコントロールは作成できますが…。
ポップアップ・ウインドウも screen 命令などでいいように思いますけど。



考える人

リンク

2015/6/18(Thu) 12:32:24|NO.69829

ありがとうございました。
なぜCreateWindowExでポップウィンドウを作成しようとしたかいうと、
screen命令で出したウィンドウクラスの"hspwnd0"よりも、独自のクラス名を作ったら、
外部コントロールしやすい思ったからです。



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