けんたろうさん、はじめまして。
私もC++BuilderでDxLibraryが使えればいいなあと常々思っていました。例えば、C++BuilderのImageBoxのなか
にDxLibraryを使って描画できればおもしろいでしょうね。
それで、ちょっと試してみたのですが、ImageBoxに描画ということはできませんでしたが、取りあえずC++Builder6
からDxLibraryを起動するということはできました。
コマンドボタンを押せば普通のDxLibraryのWindowが開いて、その中にエディトボックスで指定した横幅の長方
形を描くだけですので、これではC++Builderを使って、DxLibraryを使用したとは言えないかもしれませんが、何
かの参考になりますでしょうか?
方法はいたって簡単で、DxLibraryのヘッダファイルとLibファイルを適当に設定した後、C++Builderで普通に、
エディトボックスとコマンドボタンクリックのイベントを作り、その中に下記のようにDxLibraryを使ったプログ
ラムを書き込むだけです。
ただ、オプションでデイレクトリパスの設定に$(BCB)\lib\psdkを追加しておかないと、msacm32.libが開けな
いというエラーが出るようです。
また、Button1Clickは値を返せないので、return文は削除して適当に書き換えておきます。
#include "DxLib.h"
#include <stdlib.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SetGraphMode(640,480,16); // 画面モードのセット
ChangeWindowMode(TRUE); // ウィンドウモードに指定
DxLib_Init(); // DXライブラリ初期化
SetDrawScreen(DX_SCREEN_BACK); // 描画対象画面の指定
SetUse3DFlag(TRUE); // 3D機能を使う
int i=atoi(Edit1->Text.c_str());
while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
ClsDrawScreen(); // 画面の消去
DrawBox(100,100,i,200,GetColor(255,0,0));
ScreenFlip(); // 画面の切り替え
}
DxLib_End();
}
過去に、「DxLibraryでウィンドウを開かずにDxLibraryを使う方法」の質問があったと思いますので、そこらへん
を調べてみるともっとうまく使える方法が見つかるかもしれません。
こんなことでは何の参考にもならなかったかもしれませんが、C++BuilderからDxLibraryを使えれば、独自にコ
マンドボタンなどを作成する手間も省けますし、C++Builderも無駄にせずにすみますので、上級者の方で、
C++Builderを使っておられる方の目に留まって、何かご教授いただければと思い投稿させていただきました。
ところで話は変わりますが、VisualC++では、コマンドボタンやテキストボックスなどはVisualC++で作成し、描画
はDxLibraryを使って行うというようなことはできるのでしょうか?
けんたろうさんのご質問の趣旨とは離れてしまい申し訳ないのですが、VC++をお使いの方でご存知の方がいらっ
しゃいましたら、C++Builderでの使い方と同様、是非お教えください。