DirectXでWindowに表示したい

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
bez

DirectXでWindowに表示したい

#1 投稿記事 by bez »

只今、プログラミング講座を終えて、ABDX講座を勉強中です。
講座の内容がすべて全画面モードになるのですが、
何とか、ウィンドウの中に表示できないものでしょうか・・・。
私なりに調べてみまして、

コード: 全て選択


Function InitProc()
	'DirectXを初期化
'	If dx_Init(hMainWnd,ScreenX,ScreenY,FALSE)=0 Then
'の文章を
	If dx_Init(hMainWnd,ScreenX,ScreenY,TRUE)=0 Then
'に変更
のようにしてみましたが、うまくいきませんでした。

誰か教えていただけませんでしょうか。
要は、http://www.bcap.co.jp/bez/cube.html
のように表示したいのです。
よろしくお願いします。
ゲスト

#2 投稿記事 by ゲスト »

WindowモードでDirectXを利用するという事ですよね

でしたら
http://www.activebasic.com/forum/viewto ... 1%BC%A5%F3

http://www.activebasic.com/forum/viewto ... 1%BC%A5%C9
が参考になるでしょう。
ちゃんと過去ログにあるのでそちらも検索してから質問するようにしてください。
bez

失礼しました

#3 投稿記事 by bez »

早い返信有り難うございます。
バグ報告まで見ておりませんでした。すみません。

とりあえず
> 少し前のバージョンのときにこの状態になりました。
> メインウィンドウが不可視に設定されているのが原因のようです。
> 可視に設定すると起動直後にウィンドウが表示されるようになりました。
を頼りに試行錯誤します。
ゲスト

#4 投稿記事 by ゲスト »

ぁ、バグ報告のスペースでしたか。
頭の中にどこかにあったなと思いつつ検索したのでバグ報告だと気づきませんでした。
普通はバグ報告まで見ませんよね。すいません

早い話、不可視のウィンドウを見えるようにすれば良いので
ShowWindow関数を使うと出来るようです
ゲスト

#5 投稿記事 by ゲスト »

dx_graphics.sbpの中身のD3DFMT_R5G6B5を
D3DFMT_UNKNOWNか、d3ddm.Formatにしてみるとか
bez

試行1失敗

#6 投稿記事 by bez »

メインウィンドウの可視をチェックして実行すると
  初期化に失敗しました
とエラーが出ました。

ゲストさんのアドバイスを試してみます。
bez

成功報告

#7 投稿記事 by bez »

ゲストさん有り難うございました。
画面にHello worldが出ただけですが、すごいうれしいです。

報告します。
 ○RADツールで可視にチェック、画面を600x480に設定
                          300x480などにすると縮小画面が出た
 ○プロジェクト名.Sbp内のFALSEをTRUEに変更

コード: 全て選択


Function InitProc()
	'DirectXを初期化
'	If dx_Init(hMainWnd,ScreenX,ScreenY,FALSE)=0 Then
上記の文を下記に変更↓
	If dx_Init(hMainWnd,ScreenX,ScreenY,TRUE)=0 Then
 ○dx_graphics.sbp内のD3DFMT_R5G6B5をD3DFMT_UNKNOWNに変更
                            d3ddm.Formatに変更しても成功      

コード: 全て選択


Function dx_InitD3D(hWnd As HWND, ・・・) As Long
  ・
  ・
  ・
dx_d3dpp.BackBufferFormat = D3DFMT_R5G6B5 ' バックバッファのフォーマット
上記を下記に変更↓
dx_d3dpp.BackBufferFormat = D3DFMT_UNKNOWN ' バックバッファのフォーマット
以上です。ABDX講座に戻り、精進します。
返信する