[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/01 14:35 / Filesize : 252 KB / Number-of Response : 999
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part28



1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

520 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:04:57 ]
#defineした単語の表示色を変えることはできますでしょうか?
オプションのフォントと色を見てみたのですがそれらしい項目が見つからなくて。

521 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:50:23 ]
WAVの波形をいじるだけだからVCとか関係ない
方程式書いて計算するだけ

522 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:12:04 ]
>>520
標準のエディタじゃ無理

523 名前:デフォルトの名無しさん [2008/01/09(水) 08:16:34 ]
今までListBoxへのD&Dは、WM_CREATE後のDragAcceptFilesに失敗してても上手く行きましたが、
エディットコントロールへのD&Dが上手く行かなくて困っています。
MessageBox でテスト確認してみたら WM_DROPFILES メッセージを送ってないようなのですが、
これはサブクラス化するしか方法は無いのでしょうか・・・?
リストボックスでは出来てエディットボックスでは出来ないのは何故でしょうか・・・?
ご教授よろしくお願いします。

524 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 09:01:53 ]
ひとつのウインドウにリストボックスとエディットボックスを配置して
リストボックスにドロップしたらファイル名
エディットボックスにドロップしたらファイルの内容を表示
みたいにやってるけど特に問題なく動いてる

525 名前:523 mailto:sage [2008/01/09(水) 10:06:21 ]
もしかして同じ種類のコントロールが複数ある場合はサブクラス化しなきゃダメということでしょうか。。
複数のコントロールでD&D使い分けてるのはDragQueryPoint使ってるのかな・・・。

一応CreateWindowExでWS_EX_ACCEPTFILES指定して、
D&Dの際にはカーソルも変わるんですが、上述の通りWM_DROPFILESで何も起きません。

ちなみに、どのコントロールがアクティブ状態でも共通キー処理したいために、
全てのコントロールを一つのプロシージャにサブクラス化しています。
当然、このプロシージャではWM_DROPFILES動作は出来ました。
(ただし、リストボックスで上手く行く他のソースではメインウィンドウプロシージャでWM_DROPFILES受け取ります)

526 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 11:35:08 ]
作成時に親ウィンドウorコントロールにメッセージを関連付けるような設定がなかったっけか

527 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:35:07 ]
親ウィンドウで受けてもいいし、コントロールで受けてもいいし、
サブクラス化してもいいし、サブクラス化しなくてもいいし、
どれでもお好きなように

528 名前:デフォルトの名無しさん [2008/01/09(水) 22:02:32 ]
試しにリストボックスを適当な場所にCreateWindowExで作って観たところ、
(WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE + WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL | WS_HSCROLL | WS_VSCROLL,)
親ウィンドウへ通知するスタイルを指定しなくても WM_DROPFILES メッセージが送られました。
逆に、リストボックスで上手く行く方のソースでエディットボックスを作って同様スタイルにしてもダメでした。

D&D可能にしたいエディットボックスは
WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, + WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_VSCROLL | WS_HSCROLL,
のようなスタイルで作成してます。
最初に書くべきことでしたが、環境は VC++ 6.0 です。リソースではなく一つずつCreateしてます。

エディットボックスとドラッグ ドロップでググって観たら似たような症状が幾つか観られたんですが、
サブクラス化以外でリストボックスのように親ウィンドウでの処理という仕方がどうしても見つけられませんでした。



529 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:22:19 ]
お勧め
www5.plala.or.jp/atata/com/chap7.html

530 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:59:08 ]
VC++6.0とVC++2005は何が違うんでしょう

531 名前:デフォルトの名無しさん [2008/01/10(木) 00:00:52 ]
すいません、基本的な質問かもしれませんが‥

C言語でファイルを保存するととき(fprintfでいいんですが)
testというフォルダに保存したいのですがどうすればよろしいでしょうか?
フォルダはあります。
(例えば、sample,txtというファイル)
PCの環境はwindowsです
よろしくお願いします

532 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:04:43 ]
ファイル開くときにそのフォルダ指定すればいいだけ
ただしアドレスの\は\\にすること

533 名前:デフォルトの名無しさん [2008/01/10(木) 00:07:58 ]
\\test\\sample.txt
みたいな形ですか?

一度試してみます

534 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:11:50 ]
ごめんVCとC/C++スレ隣通しにしてたから勘違いしてた・・・
VCやったことないけど試してみて><

535 名前:デフォルトの名無しさん [2008/01/10(木) 00:14:19 ]
すいません、ありがとうございました。

test\\sample.txtみたいな形でやれば上手いことできました。
ありがとうございます

536 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:39:28 ]
VC++2005 Standardです。
リンク中に 「fatal error C1001: コンパイラで内部エラーが発生しました。」 というエラーが出るので困ってます。
__m128 x = _mm_set_ps1(y);
と書かれたところが問題のようです。でも、Debugビルドだと問題なくコンパイルできます。Releaseの場合のみエラーが出てきます。
__m128 x = {y, y, y, y};
とするとReleaseでもコンパイルできたりします。

原因がまったくわからないのでお手上げなんですが・・・

537 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 08:34:11 ]
エラーの起きる最小限のプログラムに削って調べてみる。それをup

538 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 21:15:58 ]
__m128とか_mm_set_ps1とか初めて見た。情報がすくねぇw
DebugとReleaseで_mm_set_ps1がコンパイルエラーになるなら_mm_set_ps1の定義見てみては?
俺は環境がないから確認できない・・・
関係ないかもしれないけど↓みたいな話もあるみたいね。
richa850.hp.infoseek.co.jp/programming/cpp07.html



539 名前:デフォルトの名無しさん [2008/01/12(土) 12:33:54 ]
VisualC++2008ExpressEditionを今日から使い始めました
1つのソリューション内に複数のプロジェクトがあり、ソリューション内の
あるプロジェクト(コンソールアプリ)から同ソリューション内の他のプロジェクトをインクルードディレクトリに指定する場合
どのようにすればスマートですか?

プロジェクトをコンソールアプリで作成すると構成プロパティのツリー内に
「C/C++」という項目が出てこない為、推移的に「追加のインクルードディレクトリ」という項目もありませんでした
コマンドラインの-I ../hogeを使うのかなと思いましたけど、どこに追加すればいいのやらで

初歩的過ぎで申し訳ありませんがご教授の程お願いします。

540 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 12:46:45 ]
タスクバーのメニューを消して、タスクトレイにアイコンを表示させるものを作っています。
タスクトレイのアイコンをダブルクリックした際に、ウィンドウを表示、ウィンドウをトレイへ格納の動作をつけたいと思うのですが、
処理が分かりません。
どーいった関数、処理の流れになるのか教えて下さい。
また、参考になるサイト等もあれば教えて頂きたいと思います。宜しくお願いします。

541 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:23:50 ]
なんでググらないんだろう

542 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:27:57 ]
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)


543 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 15:22:18 ]
>>539
[ファイル]-[新規作成]-[プロジェクト]
[Visual C++]-[全般]
空のプロジェクト

でコンソールアプリを作成してるけど

[プロジェクト]-[xxx のプロパティ]
[構成プロパティ]-[C/C++]-[全般]
追加のインクルードディレクトリ

が見えてる

544 名前:539 [2008/01/12(土) 16:44:51 ]
>>543
資料を見ながら作っていたのですがその手順の通りだと
あたかも最初から表示されているようにかかれてましたがソースファイルが1つも無いプロジェクトには
どうやらC/C++の項目が表示されないようになっているようです。
1つ適当にファイルを追加した後表示される事が確認できました。
有り難うございました。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:16:06 ]
ググって分からないから書いてんだろ?
キーワードもうまく見つけられないんだろうな

546 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:41:49 ]
beginthreadで開始したスレッドが終わらないうちにプログラム本体をPostQuitMessageで終了すると、
デバッグ時の出力ウィンドウに
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
と表れるんですが、どうすればアクセス違反が起こらないように終了できるんでしょうか。

547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:42:22 ]
>>546
子供に自殺要求を出して、その死水を取ってから自殺してください。

548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:42:18 ]
VC++ 2005 でisNaNを使った関数を使用するためには
ソースコード中に
using namespace System

と書けばいいのでしょうか?



549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:49:31 ]
>>548
isnan()でよければそんなことを書く必要はありませんが。

550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:59:32 ]
>549
どうもありがとうございます

デバッグかけるとソースコード中の

track_box.angle = !isnan(theta) ? (float) -theta : 0;

のところで、

error C3861: 'isnan': 識別子が見つかりませんでした
と表示されてしまいます…コードがいけないのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:03:41 ]
_isnan()

552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:10:46 ]
>551
うまくいきました!ありがとうございました

553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:13:21 ]
デバッグ?って実行しようとしてその前のコンパイルでのエラーか・・・

554 名前:デフォルトの名無しさん [2008/01/14(月) 22:31:41 ]
_inran()

555 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:00:58 ]
>>546
メモリ破壊を修正

556 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:33:58 ]
Visual C++ 2005でdirectx9.0でプログラミングしています。
プログラムは動くのですが、終了時に
スレッド 'Win32 スレッド' (0x654) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x98) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x424) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x2e0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x65c) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4c0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4d8) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4b0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4a0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x23c) はコード 0 (0x0) で終了しました。
と大量に同じようなメッセージが出力されます。
これは異常なのでしょうか?


557 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:35:54 ]
異常です

558 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:37:46 ]
ウイルス



559 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:47:09 ]
大量に出るのは異常だという根拠があるのなら異常です。

560 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:56:08 ]
>>556
スレッドを作った覚えはあるかどうか。
心当たりが無ければ、実行中に中断させて、デバッグ-ウインドウ−スレッドでスレッドの一覧が出るので、何のスレッドか調べてみよう。

561 名前:556 mailto:sage [2008/01/16(水) 21:57:04 ]
どうやら音関係の初期化で出てるみたいなんですけど、
//パフォーマンスの作成
CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
CLSCTX_INPROC, IID_IDirectMusicPerformance8,
(void**)&g_pPerformance );
とするとエラーが大量に出てしまうようです。
おかしな所あるでしょうか?指摘お願いします。

562 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:58:41 ]
感染してるとそうなる

563 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:33:52 ]
悪いことは言わない、DirectMusicには手を出さない方がいい
超えられない壁がある

564 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 12:19:17 ]
(BBSを使うのは)難しい

565 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:39:11 ]
XP(SP2) VC++6.0 MFC ダイアログベースです。
画像をランダムに表示させたいのですが、どうすればいいでしょうか?

566 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:56:33 ]
rand()に時間でもかけて使えばいいと思います

567 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ]
ランダムじゃないところまではできてるのなら、それを晒してみ。

568 名前:565 mailto:sage [2008/01/18(金) 21:42:25 ]
randで自己解決しました。
表示させる枚数も少ないので…。

ご迷惑をおかけしました。



569 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:44:47 ]
自己解決

570 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:09 ]
向きを持ったキャラクタを回転させたいんですけど、
3D空間での単位ベクトルの回転ってどうしたらいいですか?
回転といったら行列を掛ければいいとおもったんですけど、ベクトルは3元なので
どうしたらよいかわかりません。

571 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:36:20 ]
ゲーム製作板にでも行け

572 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:50:34 ]
>>568
どこが自己解決だよカス

573 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:53:03 ]
>>570
・単位マトリクスを用意
・用意したマトリクスの平行移動成分にベクトル値を入れる
・回転マトリクスと乗算する

574 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:59:59 ]
>>573
やってみたら出来ました。
ありがとうございます。
しかし、z軸の+の方からみた時は上手く動くのですが、
逆を向いた時に上下が反対になってしまいます。
D3DXMatrixRotationYawPitchRoll(&m_mat,
D3DXToRadian(yaw),
D3DXToRadian(pitch),
D3DXToRadian(roll) );
として回転行列作っているんですが、pitchの回転が上手くいきません。


575 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:51:03 ]
調子に乗るなよカス
ここはVCのスレだ

576 名前:デフォルトの名無しさん [2008/01/19(土) 11:55:55 ]
strcpyとか使うと出る例のwarningが、
#define _CRT_SECURE_NO_DEPRECATE 1
ってやっても出たまんまなんですけど、
なぜだか分かりますか?
(#pragma warning(disable:4996)は効きます)


577 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:05:54 ]
ヘッダのインクルードより先に書いている?

578 名前:デフォルトの名無しさん [2008/01/19(土) 12:13:16 ]
>>577
ありがとうございました。
解決しました。
自作のヘッダーの方では、ライブラリのinclude前に
あったのですが、mainの方ではそのヘッダーをライブラリよりも
あとから呼んでました。

もしかして、
このdefineはmainのあるcppの頭にだけ
書けばよいものなのでしょうか?




579 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:30:28 ]
ふつうは、コンパイルオプションに仕込むけど

580 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:23:17 ]
Visual C++ってフォームデザイナ付いてんの?

581 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:56:38 ]
>>580
[ファイル]-[追加]-[新しいプロジェクト]
[Visual C++]-[CLR]
Windows フォーム アプリケーション
でプロジェクトを作成すると使えるみたい

582 名前:デフォルトの名無しさん [2008/01/19(土) 15:00:17 ]
C++ とうか C++/CLI だけどね.

583 名前:デフォルトの名無しさん [2008/01/19(土) 18:30:45 ]
クラスの中で+演算子(などを)定義した際、一時的に、
newで何かを作ったとします。
(こんな感じ?)
type* tmp = new type[num];。
で、その何かは(何らかの処理後)
その演算子定義のreturnで使いたいとします。
return CLASS_X(tmp_s);
このとき、tmpのdeleteはいったい
どこで行ったらよいのでしょうか?
(deleteなしで作成後、実行しても動いてはいる?
のですが、たまたまのような気がして心配なので)

584 名前:デフォルトの名無しさん [2008/01/19(土) 18:32:07 ]
訂正
誤:return CLASS_X(tmp_s); 
正:return CLASS_X(tmp); 


585 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:44:40 ]
>>583
tmpの型をboost::scoped_array<type>にでもすればいい。

586 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:59:11 ]
>>583
CLASS_X()の戻り値を変数に保持してからtmpを解放
で、returnで保持した変数を返せばいい

587 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:19 ]
ちなみに>>583でも動くだろうが、呼び出す毎にどんどん空きメモリが減っていく

588 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:02:32 ]
>>580
スタンダード以上ならついてる



589 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:12:29 ]
フォームでよければexpressにもついてる

590 名前:デフォルトの名無しさん [2008/01/19(土) 19:31:40 ]
>>585
できればboost以外でお願いしたいのですが。


591 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:34:09 ]
>>583
operator=()の中でnewする必要がある状態ってのがよく分からない。
自動変数の値返しじゃダメなのか?
ソース提示可能なら提示よろ。

deleteしなかった場合は587の言うように当然メモリリークしていくぞ

592 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:46:23 ]
標準C++の話なら他所でやれ

593 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:47:08 ]
>>590
std::vector<type>
&tmp[0]のようにすれば、先頭要素へのポインタも得られる。

594 名前:583 [2008/01/19(土) 19:48:07 ]
>>591

ありがとうございます。
簡単に言えば文字列の足し算なんですけど、
newしないでできるのでしょうか。
(当方初心者です)

friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) {    // +演算子
  int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
  char* tmp_moji = new char[tmp_nagasa+1];
  mojicpy(tmp_moji,moji1.s);
  mojicat(tmp_moji,moji2.s);

  return Mojiretsu(tmp_moji);
}


595 名前:583 [2008/01/19(土) 19:51:06 ]
>>586

ありがとうございます。(前後してすいません)
こんな感じでしょうか。

friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) {    // +演算子
  int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
  char* tmp_moji = new char[tmp_nagasa+1];
  mojicpy(tmp_moji,moji1.s);
  mojicat(tmp_moji,moji2.s);
  char* tmp2_moji = tmp_moji;
  delete tmp_moji;

  return Mojiretsu(tmp2_moji);
}

一応、動きましたが、tmp2_mojiの先が解放されちゃってて
これも心配なんですが、大丈夫なのでしょうか。


596 名前:583 [2008/01/19(土) 19:54:04 ]
訂正
正:mojicpy、mojicat
誤:strcpy、strcat

597 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:17 ]
最近マジデ、どのプログラムもつまんないんですが、どうしたらいいですか?
責めて、C++で鬱病から逃れたいんですが

598 名前:583 [2008/01/19(土) 19:59:39 ]
>>592
すいません、この質問が終わったらよそに行きます。
見逃してください。



599 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:59:44 ]
ここC++スレじゃないってば
VCスレ

600 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:00:57 ]
>598
見苦しいから汚いコード貼らないでくれる?

601 名前:591 mailto:sage [2008/01/19(土) 20:05:37 ]
正直すまんかった。

>>598
C++相談室 part60
pc11.2ch.net/test/read.cgi/tech/1200044614

あたりで同じ質問してくれ。

602 名前:583 [2008/01/19(土) 20:08:15 ]
>>601
すいませんです。
そちらに行きます。

お邪魔いたしました。

603 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:30:05 ]
最近は、プログラムってFPGAとかのハードプログラムが面白い罠

604 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:23:32 ]
3週間完全マスターVisual C++ 6.0 1版1刷(日経BP社)を図書館で借りたのですが、、、
どっかに、正誤表とかはないんですか?

605 名前:デフォルトの名無しさん [2008/01/20(日) 01:25:08 ]
>>603
PCに標準で乗ってたら面白いけどな.

606 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:45:08 ]
>>604
ここで聞いてどうするw
出版社に聞け

607 名前:デフォルトの名無しさん [2008/01/20(日) 12:10:01 ]
デバイスコンテキストを使用しててどうも前に進めません。
新しくトップにウィンドウ(タイトルバー無し)をポップアップして、
そこにテキストを表示するというものなのですが、
一定以上の大きさを制限するために、一旦デバイスコンテキストに描画したものをStretchしたいのですが、
それ以前にCreateCompatibleDCでメモリデバイスコンテキストにDrawTextしてから
BitBltでウィンドウにそのままSRCCOPYしても真っ白なままです。
hDC = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
GetClientRect(hWnd);
DrawText(hMemDC, szText, -1, &rec, DT_WORDBREAK);
BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
のような感じで、取り敢えずウィンドウの大きさそのままに描画してもダメでした。
これが DrawText(hDC, szText, -1, &rec, DT_WORDBREAK); に置き換えると、ちゃんと描画されます。
プロポーショナルフォントを使っているので、ウィンドウサイズに合わせてポイントを変えるとずれてしまうので、
設定したフォントのまま縮小出来れば、、と試行錯誤してますが、デバイスコンテキストの描画の時点で止まってしまってます。
助言どうかよろしくお願いします。

608 名前:607 [2008/01/20(日) 12:12:20 ]
すいません、一行書き間違えしました。
>BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
→BitBlt(hDC, 0, 0, rec.right, rec.bottom, hMemDC, 0, 0, SRCCOPY);



609 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:29:26 ]
CreateCompatibleDCでググれ。
メモリDCはビットマップを割り当てないとまともに使えない。

610 名前:デフォルトの名無しさん [2008/01/20(日) 16:37:28 ]
2008/01/20 現在での最新のVisualC++ のバージョンは何でしょうか?

611 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:40:49 ]
マイクロソフトの公式でも池よカス

612 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:47:11 ]
>>611
いっぺあってどれがどれやらワケワカメなんだよボケェ
体系的に整理されていないと頭にインプットされねーんだよウンコ

613 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:52:28 ]
2008じゃないの?

614 名前:デフォルトの名無しさん [2008/01/20(日) 17:00:35 ]
まずなにしたらいいですか

615 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:09:27 ]
>>614
オナ・・・というのは置いといて
Hello world を表示だな

616 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:10:33 ]
>>614
コーヒーを用意し
服を脱ぎ
コーヒーに塩を入れ
裸体のまま一気に飲む

617 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:16:28 ]
>>614
void main()
{
printf( "Hello world!!\n" );
}
これを動かしてみ?

できるかな?
できるかな?

618 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:25:46 ]
>>614
なんで手に入れたんだよ
ワレズか?
違法だからやめとけお勧めしないから違法なんだよ



619 名前:デフォルトの名無しさん [2008/01/20(日) 17:47:26 ]
>>609
更に調べてみたら、どうにか作りたい形に近づきました。
hBmp = CreateCompatibleBitmap(hMemDC, rec.right, rec.bottom);
SelectObject(hMemDC, hBmp);
のようにしてから、DrawText, StretchBltをhMemDCに出力したところ、反映されたのですが、
テキストの埋まってない余白部分が黒くなってしまいます。
HBITMAPやCreateCompatibleBitmapで調べてるのですが、どうも背景を白く塗りつぶす事が出来ず・・・。

SelectObject(hMemDC, hBmp);
に関してはメモリデバイスコンテキストとBITMAP領域をリンクした状態にするという感じでしょうか・・・?

620 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:40:28 ]
DrawTextやStretchBltは呼べるのに、何故FillRectを呼ばないのかと






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<252KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef