ページ 11

windowsプログラミングとDxLibの併用について…

Posted: 2009年10月18日(日) 14:09
by
2か月ぶりの投稿です。以前お世話になったかた、ありがとうございます。

この2か月間はSAIやphotoshopをいじっていたんでプログラミングは全くと言っていいほどやっておりません。
ので、変な記述をするかもしれませんが、よろしくお願いします。

お聞きしたいのは、windowsのプログラミングとDxLibライブラリを併用できるのかどうかです。

DxLibライブラリは関数を使用するだけでそれなりの処理ができるので重宝しておりますが、どうしても一部の処理をwindowsのプログラミングに任せたいと思っています。(記載者はwindowsのプログラムの知識が全くありません。これから勉強する予定です。)

例をあげるとウィンドウの生成に関して。

DxLibではDxLib_Initという関数がDxLibを初期化すると同時にウィンドウ(フルスクリーンで)を生成しています。

ですが、windowsのプログラムによって生成したウィンドウ上にDxLibライブラリを使うことはできないのか、と最近考えています。

はたしてこのような処理はできるのか。できるのであればwindowsの知識がないのでアルゴリズム的なものを提示してくれたらうれしいです。

変な質問ででしたらごめんなさい。

かなりプログラミングの知識は病み上がりなもので…

それとwindowsのプログラミングの学習に関して有効な書籍あるいはサイトがあれば教えてくださるとうれしいです。

ただ、まだCの知識すら習いたてで機能すべてを網羅していないので、こちらからさきに学習しなければなりませんが…

Re:windowsプログラミングとDxLibの併用について…

Posted: 2009年10月18日(日) 16:53
by dic
>windowsのプログラムによって生成したウィンドウ上にDxLibライブラリを使うことはできないのか
可能ですが、DxLibのソースコードを改造もしくは借りる必要があるので
それができるかどうかですね

>windowsのプログラムによって生成したウィンドウ
とありますが、windowsのプログラムだからといって必ずウィンドウが出現する必要もない場合もあります
具体的に言うと CreateWindow(Ex) 巻数を呼び出さない限りウィンドウは生成されません
そして、ShowWindow関数で、デスクトップ画面にウィンドウを表示することを命令します

平たく言うとウィンドウをもたないwindowsプログラムもあるってことです

Re:windowsプログラミングとDxLibの併用について…

Posted: 2009年10月18日(日) 17:11
by
ご回答ありがとうございます。

DxLibライブラリを使用した場合、ウィンドウ生成後DxLib初期化のため、ウィンドウ内真っ暗でウィンドウの移動もカタコテなので、どうにかしたいと考えました。

そこでDxLibライブラリを使用しない場合に.bmp等画像ファイルを表示するプログラムをサイトや書籍から借りてきて実行してみると、

すばやく画像を描写してくれます。

そこで、DxLib読み込み中にどうにかして、このような処理ができないか…と考えていたのですが、よくわからず、このような質問をしました。

無知でごめんなさい。

Re:windowsプログラミングとDxLibの併用について…

Posted: 2009年10月18日(日) 17:42
by Justy

>windowsのプログラムによって生成したウィンドウ上にDxLibライブラリを使うことはできないのか

 一応可能です。
 SetUserWindow(HWND)という関数がありますので、
DxLib_Init()より前にウインドウを生成し、この関数に引き渡してください。



>ウィンドウ生成後DxLib初期化のため、ウィンドウ内真っ暗で
>ウィンドウの移動もカタコテなので、どうにかしたいと考えました

 DxLib_Init()による一時的な硬直のことですか?
 
 うーん、DXライブラリを使う場合はどうしてもこの関数を呼ばなければならないので、
(あの手この手を尽くせばできるのかもしれませんが)現状避けらないと思います。

 ただ、誤魔化すことはできます。
 例えば、
[color=#d0d0ff" face="monospace]
ChangeWindowMode(TRUE);
SetWindowSize(0, 0);
DxLib_Init();
SetWindowSize(640, 480);
SetDrawScreen(DX_SCREEN_BACK);
[/color]

とすれば、最初にウインドウサイズを小さくしておいて、
初期化が終わった後にサイズを元に戻し、即座に表示を行えば
見かけ上ウインドウが現れたと同時に表示されます。

Re:windowsプログラミングとDxLibの併用について…

Posted: 2009年10月18日(日) 17:56
by
ご回答ありがとうございます。


回答をもとにチャレンジしてみたいと思います。


途中からトピックと質問内容が変わってしまったので、一度チャレンジしてなかなかうまくいかなければ再度質問したいと思います。


ご回答してくださった方、ありがとうございます。